在 CentOS 系统上安装 PHP 是一个常见的任务,特别是对于开发人员和系统管理员来说,以下将详细介绍如何在 CentOS 上安装 PHP,包括步骤、所需命令和注意事项。
一、CentOS 7 上安装 PHP 8.1

1、安装 EPEL 仓库:EPEL (Extra Packages for Enterprise Linux) 提供了 CentOS 和其他企业级 Linux 发行版所需的额外软件包。
- sudo yum install y https://dl.fedoraproject.org/pub/epel/epelreleaselatest7.noarch.rpm
2、安装 Remi's RPM 仓库:Remi's RPM 仓库提供了最新版本的 PHP。
- sudo yum install y https://rpms.remirepo.net/enterprise/remirelease7.rpm
3、启用 PHP 8.1 仓库:使用yumconfigmanager
启用 Remi's PHP 8.1 仓库。
- sudo yumconfigmanager enable remiphp81
4、安装 PHP 8.1 及其常用扩展:现在可以安装 PHP 8.1 及其常用的扩展。
- sudo yum install php phpcli phpfpm phpjson phpcommon phpmysqlnd phpzip phpgd phpmbstring phpcurl phpxml phppear phpbcmath
5、验证 PHP 安装:使用以下命令检查 PHP 的版本。
- php v
二、CentOS 8 上安装 PHP 7.4

1、添加 EPEL 和 REMI 库:安装需要 EPEL 和 REMI 库。
- sudo yum y install https://dl.fedoraproject.org/pub/epel/epelreleaselatest8.noarch.rpm
- sudo yum y install https://rpms.remirepo.net/enterprise/remirelease8.rpm
2、在 CentOS 8 上安装 PHP 7.4:添加相关的库后,启用 PHP 7.4 的 Remi 模块并进行安装。
- sudo dnf module install php:remi7.4
3、安装 PHP FPM:FPM 被作为 PHP 依赖安装,并且被用作 FastCGI 服务器。
- sudo systemctl enable now phpfpm
4、配置 PHP,适配 Apache:如果正在使用 apache 作为你的网页服务器,使用下面的命令重启httpd服务。
- sudo systemctl restart httpd
5、配置 PHP,适配 Nginx:默认情况下PHP FPM 以 apache 用户运行,为了避免权限问题,我们将用户改为nginx,编辑下面的内容。
- sudo nano /etc/phpfpm.d/www.conf
修改以下内容:

- user = nginx
- group = nginx
确保/var/lib/php目录拥有正确的用户身份。
- chown R root:nginx /var/lib/php
6、重启 PHP FPM 服务:一旦修改好,重启 PHP FPM 服务。
- sudo systemctl restart phpfpm
7、编辑 Nginx 虚拟主机指令:添加下面的代码块以便 Nginx 可以处理 PHP 文件。
- server {
- location ~ \.php$ {
- try_files $uri =404;
- fastcgi_pass unix:/run/phpfpm/www.sock;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- }
8、重启 Nginx 服务:想要新的配置起作用,重启 Nginx 服务。
- sudo systemctl restart nginx
三、常见问题及解答
1、问题:如何查看已安装的 PHP 版本?
答:要查看已安装的 PHP 版本,可以使用以下命令:
- php v
2、问题:如何卸载已安装的 PHP?
答:要卸载已安装的 PHP,可以使用以下命令:
- sudo yum remove y php
是在 CentOS 系统上安装 PHP 的详细步骤,通过这些步骤,你可以顺利地在你的 CentOS 系统上安装并配置 PHP,如果你遇到任何问题,可以参考相关文档或寻求社区的帮助。