Windows環境下搭建Nginx和多版本PHP共存


 

PHP版本眾多,彼此之間兼容性不好,不同程序經常需要的不同版本的PHP版本。這里介紹如何使用NGINX讓不同版本的PHP共存。

軟件下載地址

與nginx整合的php需要選擇Non Thread Safe(nts)的免安裝版本。

  • NGINX下載。本例下載的是nginx/Windows-1.10.2。下載后解壓即可。
  • PHP7.0下載。本例下載的是PHP 7.0 (7.0.14) VC14 x64 Non Thread Safe。下載后解壓即可。
  • PHP5.2下載。本例下載的是php-5.2.17-nts-Win32-VC6-x86.zip。下載后解壓即可。
  • RunHiddenConsole,用於啟動php-cgi,可以實現關閉窗口依然在后台運行。解壓后復制RunHiddenConsole.exe到nginx的根目錄(nginx.exe文件所在目錄)。

配置NGINX

修改nginx.conf配置文件。分別將請求發送到9000、9001端口。

server { listen 80; server_name www.mydomain.com; location / { root D:/php_program; index index.php index.html index.htm; } location ~ \.php$ { root D:/php_program; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } server { listen 80; server_name www.mydomain1.com; location / { root D:/php_program1; index index.php index.html index.htm; } location ~ \.php$ { root D:/php_program1; fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 

配置PHP

復制php.ini-recommendedphp.ini-developmentphp.ini

;設置php的ext路徑,通常需要用絕對路徑。
extension_dir = "D:/php-5.2.17-nts-Win32-VC6-x86/ext" ;提交數據最大限制 post_max_size = 30M ;上傳文件的最大限制。 upload_max_filesize = 100M ;通常要開啟的擴展,php7.0無php_mysql.dll、php_pdo.dll,無需開啟這兩項。 extension=php_gd2.dll extension=php_mbstring.dll extension=php_mysql.dll extension=php_mysqli.dll extension=php_pdo.dll extension=php_pdo_mysql.dll ;php與nginx整合必須開啟 cgi.fix_pathinfo=1 

啟動腳本

在nginx根目錄(nginx.exe文件所在目錄)新建啟動腳本start_nginx.bat。兩個版本的php分別用不同端口。

@ECHO OFF ECHO Starting PHP5.2 FastCGI... RunHiddenConsole.exe D:/php-5.2.17-nts-Win32-VC6-x86/php-cgi.exe -b 127.0.0.1:9000 ECHO Starting PHP7.0 FastCGI... RunHiddenConsole.exe D:/php-7.0.14-nts-Win32-VC14-x64/php-cgi.exe -b 127.0.0.1:9001 ECHO Starting Nginx... start nginx 

在nginx目錄新建關閉腳本stop_nginx.bat。兩個php-cgi用一個命令即可關閉。

@ECHO OFF ECHO Stoping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul ECHO Stoping Nginx... taskkill /F /IM nginx.exe > nul


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM