linux下nginx同时配置多个版本的PHP

问题:有些项目需要跑在PHP5.3版本的,有些项目又需要更高版本的PHP,所有这里简单的记录下配置多个PHP版本的方法

解决原理:Nginx是通过PHP-FastCGI与PHP交互的。而PHP-FastCGI运行后会通过文件、或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释。

既然PHP-FastCGI是监听端口和文件的,那就可以让不同版本的PHP-FastCGI同时运行,监听不同的端口或文件,Nginx中根据需求配置调用不同的PHP-FastCGI端口或文件,即可实现不同版本PHP共存了。

前提:我的服务器已经是安装了多个PHP版本

1:Nginx连接fastcgi的方式有2种:unix domain socket和TCP,Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流和数据队列,而管道通信则只能通过字节流。Unix domain sockets的接口和Internet socket很像,但它不使用网络底层协议来通信。Unix domain socket 的功能是POSIX操作系统里的一种组件。(我刚开始就是unix domain socket方式连接的)

2:先打开 vim /usr/local/php/etc/php-fpm.conf,把listen = /dev/shm/php-cgi.sock 改为listen = 127.0.0.1:9000;

3:然后打开 vim /usr/local/nginx/conf/nginx.conf 把fastcgi_pass 127.0.0.1:9000,如果nginx配置多个站点的情况,大多数是把站点文件给单独写到vhost目录下了,所以根据自己的情况来配置哪个站点需要用哪个版本的PHP,就相应的改端口就是行,我自己这里是9000监听的是php5.6的,9001是监听的是php7.2的

4:因为上面这是默认的php版本,所以这里就不用启动了php-fpm了,如果没启动就执行/etc/rc.d/init.d/php-fpm start,这里fastcgi监听的是9000端口

5:当我要再多配置一个PHP版本的就重复步骤2和3,只不过是要9000端口改为9001,还需要启动新版本的php-fpm,/usr/local/php72/sbin/php-fpm

6:完成!,上面的路径都是我服务器上的路径,如果你们的路径不是这样,自行改

猜你喜欢

转载自blog.csdn.net/wsyh12345678/article/details/87796753