windows下 解决PHP-CGI 进程崩溃502
PHP是世界上最好的語言,但需要PHP解析器;Apache+php,需要通過mod_php.so和php相連;nginx+php 需要轉(zhuǎn)發(fā)給?cgi程序
關(guān)于FastCGI:
全稱?FastCGI Process Manager,是一種進(jìn)程管理器,管理?cgi,市面上有很多進(jìn)程管理器,PHP-FPM就是其中一種。
linux環(huán)境:PHP-FPM作為進(jìn)程管理器,會監(jiān)聽端口,默認(rèn)為9000,并且監(jiān)聽本機,只接收127.0.0.1,可以通過?netstat -nlpt|grep php-fpm?查看
Windows環(huán)境:默認(rèn)會通過PHP-CGI?作為進(jìn)程管理器,PHP自帶的FastCGI管理器,
缺點:
windows(64位)下,nginx使用php-cgi解析如何解決PHP-CGI 進(jìn)程崩潰的問題:
解決方法:采用xxfpm,管理FastCGI進(jìn)程.
下載地址: windows下解決PHP-CGI進(jìn)程崩潰502的資源包-PHP文檔類資源-CSDN下載
1.首先安裝?xxfpm.exe管理器
在下載包里找到?pthreadGC2.dll文件,將這個文件復(fù)制到C:/Windows/SysWOW64目錄(如果系統(tǒng)是32位的,將dll文件復(fù)制到C:WindowsSystem32下);
在C:/Windows/SysWOW64目錄,新建一個文件?registe.bat,和pthreadgc2.dll同目錄
@echo 開始注冊copy pthreadgc2.dll %windir%SysWOW64regsvr32 %windir%SysWOW64pthreadgc2.dll /s@echo pthreadgc2.dll注冊成功@pause運行registe.bat,便會完成pthreadgc2.dll注冊(如果32位的系統(tǒng),請將system32替換為system32)。完了就可以將registe.bat刪了
2.將下載的xxfpm.exe?copy 到nginx目錄下,
3.新建restart_nginx.bat
@echo offREM Windows 下無效REM set PHP_FCGI_CHILDREN=5REM 每個進(jìn)程處理的最大請求數(shù),或設(shè)置為 Windows 環(huán)境變量set PHP_FCGI_MAX_REQUESTS=1000echo Starting PHP FastCGI...RunHiddenConsole C:/wnmp/nginx/xxfpm/xxfpm.exe "C:/wnmp/php/php-cgi.exe -c C:/wnmp/php/php.ini" -n 5 -i 127.0.0.1 -p 9000echo Starting nginx...RunHiddenConsole C:/wnmp/nginx/nginx.exe -p C:/wnmp/nginxexit4.新建stop_nginx.bat
5.現(xiàn)在運行?stop_nginx.bat,等于同時開啟5個php-cgi進(jìn)程,因為我們傳了參數(shù) -n 為5
6.如果我們手動斷掉一個,會發(fā)現(xiàn)又多出來一個,還是5個。
這是因為xxfpm會管理php-cgi,將其維持在5個php-cgi進(jìn)程,防止cgi進(jìn)程崩潰關(guān)閉。
還有一點注意,監(jiān)聽端口注意與nginx的配置文件相同。
總結(jié)
以上是生活随笔為你收集整理的windows下 解决PHP-CGI 进程崩溃502的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XenAPP6.5安装于部署(五)---
- 下一篇: php与js字符串长度怎么算,JS判断字