当前位置: 首页 > 工具软件 > WNMP+ > 使用案例 >

wnmp php7,wnmp环境php7与其他php版本共存

冀耀
2023-12-01

php7.0已经发布,几经测试兼容性比较好,目前没出什么状况,但还是不敢贸然配置到服务器上去。

目前服务器是php5.5,就想到能不能搞php多版本共存,于是本机折腾了下成功了。思路就是让让每个版本php的php-cgi运行在不同端口,用nginx监听此端口。

一、

本机是windows7,首先需要下载的是

php7.0RC(目前最新版)

nginx

RunHiddenConsole.exe。

RunHiddenConsole.exe用来隐藏nginx以及php-cgi的控制窗口。

二、

解压相关软件,我的主目录是e:/server,所以我的php7解压目录e:/server/php7.0,nginx解压目录e:/server/nginx-1.9.4,另外有个php5.4版本解压目录e:/server/php5.4。

三、

把RunHiddenConsole.exe放到nginx解压目录。并在此目录创建启动、停止、重启nginx和php-cgi的脚本。

start.bat

@ECHO OFF ECHO Starting PHP FastCGI… RunHiddenConsole e:/server/php5.4/php-cgi.exe -b 127.0.0.1:9054 -c e:/server/php5.4/php.ini RunHiddenConsole e:/server/php7.0/php-cgi.exe -b 127.0.0.1:9070 -c e:/server/php7.0/php.ini echo Starting nginx… RunHiddenConsole e:/server/nginx-1.9.4/nginx.exe exit

stop.bat

@echo off echo Stopping nginx… taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI… taskkill /F /IM php-cgi.exe > nul exit

restart.bat

@ECHO OFF echo Stopping nginx… taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI… taskkill /F /IM php-cgi.exe > nul echo ReStarting nginx… ECHO Starting PHP FastCGI… RunHiddenConsole e:/server/php5.4/php-cgi.exe -b 127.0.0.1:9054 -c e:/server/php5.4/php.ini RunHiddenConsole e:/server/php7.0/php-cgi.exe -b 127.0.0.1:9070 -c e:/server/php7.0/php.ini echo Starting nginx… RunHiddenConsole E:/server/nginx-1.9.4/nginx.exe exit

解释:以上脚本中,php-cgi.exe -b 127.0.0.1:90xx表示php的端口,此处我以版本表示,所以是9054和9070.

四、

设置nginx的监听端口。nginx的server中都有一段代码片段:

location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9070; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

其中,fastcgi_pass 127.0.0.1:9070 便是nginx监听的端口了。配合虚拟主机配置多个server便实现了让不同网站程序运行在不同的php版本上,我这里是运行在php7上,所以是9070,其他不再细述。

这样就全部大功告成了。

最后注意,这只是在windows下的方法(脚本中用php-cgi.exe启动php)。至于linux,因为是用php-fpm来启动php的,所以需要在php-fpm.conf配置文件里的修改端口,这里也不再细述,改个文件而已。

欢迎一起探讨。

 类似资料: