联系QQ 284710375
首页 > 技术分享 > LNMP|WAMP
收藏

Debian下同时安装PHP5.6和PHP7.32020-11-27 11:00:03

大潇博客 原创文章,转载请标明出处

本文所讲环境为:LNMP


首先可查看当前系统信息:cat /proc/version

我所在的系统信息为:

debian系统信息.png


我的服务器中已存在php5,并在正常运行,下面为安装PHP7的方法:

sudo apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-curl

若没有合适的源,可尝试其它版本,我直接安装了PHP7.3

apt-get install php7.3-fpm php7.3-mysql php7.3-common php7.3-curl


安装过程很简单,上面的一条命令直接就可以安装成功,使用apt-get安装会自己把php-fpm添加到服务中,可以使用service命令进行控制(编译安装不会)


这时只是成功安装了PHP7.3,由于PHP默认监听了9000端口,网上查阅资料,有这样的说法:软件源安装的PHP默认以Unix Socket的状态运行在/run/php/php7.3-fpm.sock,比使用TCP以127.0.0.1:9000的方式性能更好,通俗理解为:因为php7升级了配置,默认不再监听9000端口了,监听的是/run/php/php7.0-fpm.sock


我们打开/etc/php/7.0/fpm/pool.d/www.conf文件,会发现确实没有监听明确的端口,而是:listen = /run/php/php7.0-fpm.sock


这时又有很多资料提示,将nginx配置文件中匹配php文件段的“fastcgi_pass   127.0.0.1:9000;”修改为“fastcgi_pass unix:/var/run/php7.0-fpm.sock;”,实测这样还是会报502错误


并且由于安装了两个PHP,如果都用9000端口,必有一个无法正常启动,我们把原来的php5-fpm关掉后,使用netstat -anp|grep 9000查看9000端口,会发现没有监听了,于是nginx无法通过fastcgi来代理php请求,返回502错误


最后的解决方法:找到/etc/php/7.0/fpm/pool.d/www.conf,用;注释掉sock监听的方式,增加9002端口监听

 ;listen = /run/php/php7.0-fpm.sock

listen = 9002


启动php5.6:service php5-fpm start

启动php7.3:service php7.3-fpm start


分别修改nginx的配置,使用9000端口代理PHP5,使用9002端口代理PHP7

即:

fastcgi_pass   127.0.0.1:9000;

fastcgi_pass   127.0.0.1:9002;QQ图片20201127145909.png


重启nginx,使用phpinfo进行验证,若运行正常,两个域名方法相同根目录的phpinfo,也会显示两种版本的php

QQ图片20201127145647.png


参考文章:https://www.cnblogs.com/wenhainan/p/9883650.html


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311