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

来源:互联网 发布:农村淘宝合伙人加盟费 编辑:程序博客网 时间:2024/06/16 02:31

转载:http://www.lunzz.net/archives/169.shtml

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配置文件里的修改端口,这里也不再细述,改个文件而已。

欢迎一起探讨。

0 0
原创粉丝点击