在CentOS系统中运行PHP是许多开发者和系统管理员需要掌握的基本技能,CentOS作为一款稳定可靠的Linux发行版,广泛应用于服务器环境,本文将详细介绍在CentOS上安装和运行PHP的完整步骤,包括环境准备、安装配置、常见问题处理等内容,帮助读者快速搭建PHP运行环境。

安装前的环境准备
在开始安装PHP之前,需要确保系统已经更新到最新状态,打开终端,执行以下命令更新系统包:
sudo yum update -y
安装一些必要的编译工具和依赖库,这些对于后续安装PHP及其扩展非常重要:
sudo yum groupinstall "Development Tools" -y sudo yum install wget gcc make libxml2-devel openssl-devel bzip2-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel -y
完成这些准备工作后,系统就可以支持PHP的安装和运行了。
选择PHP版本并安装
CentOS默认的软件源中可能不包含最新版本的PHP,因此建议使用第三方源来安装,Remi是一个流行的第三方软件源,提供多个版本的PHP,首先安装EPEL源和Remi源:
sudo yum install epel-release -y sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
安装完成后,可以使用以下命令启用特定版本的PHP,例如安装PHP 7.4:
sudo yum install yum-utils -y sudo yum-config-manager --enable remi-php74 sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-curl php-zip -y
安装完成后,可以通过命令php -v验证PHP是否成功安装。

配置PHP-FPM以支持Web服务器
如果需要通过Web服务器(如Nginx或Apache)运行PHP,需要配置PHP-FPM,PHP-FPM(FastCGI Process Manager)是PHP的一种FastCGI实现,能够有效处理高并发请求。
编辑PHP-FPM的配置文件:
sudo vi /etc/php-fpm.d/www.conf
修改以下参数以优化性能:
listen = /var/run/php-fpm/php-fpm.sock:设置监听方式为Unix套接字。listen.owner = nginx:设置套接字所有者为Web服务器用户(如nginx)。listen.group = nginx:设置套接字所属组。listen.mode = 0660:设置套接字权限。
保存配置文件后,启动PHP-FPM服务并设置开机自启:
sudo systemctl start php-fpm sudo systemctl enable php-fpm
根据使用的Web服务器(Nginx或Apache)配置相应的FastCGI参数,确保PHP文件能够被正确解析。
测试PHP运行环境
创建一个简单的PHP测试文件,验证环境是否配置成功,使用以下命令在Web服务器的根目录下创建info.php文件:
sudo echo "<?php phpinfo(); ?>" > /var/www/html/info.php
访问浏览器中的http://服务器IP/info.php,如果看到PHP的配置信息页面,说明PHP运行环境已成功搭建,完成后,建议删除测试文件以避免安全风险:

sudo rm /var/www/html/info.php
常见问题处理
在安装和运行PHP的过程中,可能会遇到一些常见问题,如果PHP-FPM启动失败,可以检查日志文件/var/log/php-fpm/error.log排查错误原因,如果遇到PHP扩展缺失的问题,可以通过yum install php-扩展名命令安装所需的扩展,确保在修改配置文件后重启相关服务,使配置生效。
相关问答FAQs
Q1:如何在CentOS上切换PHP版本?
A1:如果安装了多个PHP版本,可以通过yum-config-manager切换默认版本,要切换到PHP 7.3,执行:
sudo yum-config-manager --enable remi-php73 sudo yum install php php-cli php-fpm php-mysqlnd -y
然后重启PHP-FPM服务即可。
Q2:如何优化PHP-FPM的性能?
A2:优化PHP-FPM性能可以通过调整pm参数实现,在/etc/php-fpm.d/www.conf中设置:
pm = dynamic:使用动态进程管理。pm.max_children = 50:最大子进程数。pm.start_servers = 5:启动时的进程数。pm.min_spare_servers = 5:最小空闲进程数。pm.max_spare_servers = 35:最大空闲进程数。
根据服务器负载调整这些参数,并重启PHP-FPM服务使配置生效。