CentOS7双PHP环境下,如何配置php-fpm使用php55而非默认php?
当然可行!你只需要调整php-fpm的实例配置,让Nginx指向PHP5.5对应的php-fpm服务即可,具体步骤如下:
第一步:定位PHP5.5的php-fpm配置文件
首先确认PHP5.5版本的php-fpm配置路径。如果你是通过yum等包管理器安装的php55,配置文件通常在/etc/php55/php-fpm.conf或者/etc/php-fpm-5.5/目录下。也可以通过命令快速验证:php55-fpm -t执行后会输出当前php-fpm加载的配置文件路径,比如
Configuration file /etc/php55/php-fpm.conf test is successful。第二步:修改PHP5.5的php-fpm监听地址
默认情况下,php-fpm会监听127.0.0.1:9000端口,为了和默认PHP4.5的php-fpm区分开,我们需要修改PHP5.5的监听端口或使用Unix Socket(后者性能更优):
打开找到的配置文件,找到listen指令,修改为:# 方式1:使用不同端口 listen = 127.0.0.1:9001 # 方式2:使用Unix Socket listen = /var/run/php55-fpm.sock如果选择Socket方式,还需要设置正确的权限,确保Nginx能正常访问:
listen.owner = nginx listen.group = nginx listen.mode = 0660第三步:启动并启用PHP5.5的php-fpm服务
CentOS7上,PHP5.5的php-fpm服务名通常是php55-fpm,执行以下命令启动服务并设置开机自启:systemctl start php55-fpm systemctl enable php55-fpm可以通过
systemctl status php55-fpm验证服务是否正常运行。第四步:调整Nginx配置指向PHP5.5的php-fpm
打开你的Nginx站点配置文件(通常在/etc/nginx/conf.d/或/etc/nginx/sites-available/目录下),找到fastcgi_pass指令,将原来的127.0.0.1:9000修改为PHP5.5的监听地址:# 如果用端口方式 fastcgi_pass 127.0.0.1:9001; # 如果用Socket方式 fastcgi_pass unix:/var/run/php55-fpm.sock;其他fastcgi相关参数(比如
fastcgi_param SCRIPT_FILENAME)保持默认即可,无需修改。第五步:重启Nginx并验证
重启Nginx使配置生效:systemctl restart nginx最后,在你的网站根目录创建一个
phpinfo.php文件,内容如下:<?php phpinfo(); ?>通过浏览器访问这个文件,查看页面顶部的PHP版本信息,确认是否已经切换为5.5。
额外说明
如果你不再需要默认PHP4.5的php-fpm服务,可以执行systemctl stop php-fpm停止它;如果需要不同站点使用不同PHP版本,只需要给每个站点的Nginx配置单独指定对应的fastcgi_pass地址即可。
内容的提问来源于stack exchange,提问作者user2943799

