windows下配置nginx支持多个版本PHP
在本地开发时,经常需要不同版本到PHP,一般是通过给nginx配置不同到端口来解决
nginx.conf配置文件中server段设置不同端口到PHP解析
server {
listen 80;
server_name www1.local.com;
access_log logs/www1.access.log main;
error_log logs/www1.error.log info;
location / {
root D:/www1;
index index.html index.htm index.php;
}
location ~ \.php$ {
root D:/www1;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME D:/www1$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name www2.local.com;
access_log logs/www2.access.log main;
error_log logs/www2.error.log info;
location / {
root D:/www2;
index index.html index.htm index.php;
}
location ~ \.php$ {
root D:/www2;
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME D:/www2$fastcgi_script_name;
include fastcgi_params;
}
}
上面配置中我配置了两个虚拟主机分别对于不同到端口9001和9002,然后每个端口对于到指定到PHP
我们写一个启动脚本start_nginx.bat,命令如下:
REM set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole D:/php7/php-cgi.exe -b 127.0.0.1:9001 -c D:/php7/php.ini
RunHiddenConsole D:/php8/php-cgi.exe -b 127.0.0.1:9002 -c D:/php8/php.ini
echo Starting nginx...
RunHiddenConsole D:/nginx-1.22.0/nginx.exe -p D:/nginx-1.22.0
上面配置9001端口指定到了php7,9002端口指定到了php8
这样nginx启动到时候,两个虚拟主机启动的时候,分别使用了php7和php8.
在linux环境下其实也是一样到道理,只要配置不同到端口 到不同的PHP就可以。