首頁 >後端開發 >PHP問題 >php cgi 自動關閉怎麼辦

php cgi 自動關閉怎麼辦

藏色散人
藏色散人原創
2020-09-04 10:02:163736瀏覽

php cgi自動關閉的解決方法:先完成「pthreadgc2.dll」註冊;然後將xxfpm目錄複製到nginx下;接著修改「RunHiddenConsole」啟動關閉檔案;最後設定Windows環境變數即可。

php cgi 自動關閉怎麼辦

推薦:《PHP影片教學

解決windows下php-cgi行程經常自動關閉

php-cgi在linux中有fpm管理,Apache不是採用cgi這種模式,於是乎就出現了,在windows下,採用nginx時,開啟的php-cgi監聽非常不穩定,經常奔潰關閉。現在解決了這個問題。注意是win32位元系統下解決的,雖然伺服器上64位元系統也跑起來了,但是環境裝的都是32位元的。

採用了這個叫xxfpm的FastCGI進程管理器:xxfpm

下載後執行xxfpm.exe,如果出現報錯缺少pthreadgc2.dll,需要下載pthreads-win32:http://sourceware .org/pthreads-win32/

php cgi 自動關閉怎麼辦

將這個檔案複製到C:/Windows/System32下(如果系統是64位元的請將32位元的dll檔案複製到C:\Windows\SysWOW64目錄);

然後打開“開始-運行-輸入regsvr32 pthreadgc2.dll”,回車,如果報錯,用下面的方法。

新建一個檔案「註冊.bat“,內容:

@echo 开始注册
copy pthreadgc2.dll %windir%\system32\
regsvr32 %windir%\system32\pthreadgc2.dll /s
@echo pthreadgc2.dll注册成功
@pause

雙擊註冊.bat,就會自動完成pthreadgc2.dll註冊(如果64位元的系統安裝32位元的dll文件,請將system32替換為SysWOW64)。完了就可以將這個文件刪了。

接下裡將下載下來的xxfpm目錄copy到nginx下:

php cgi 自動關閉怎麼辦

為了方便修改一下當初安裝nginx時的RunHiddenConsole啟動關閉檔案(如果你是在windows手動搭建Nginx環境這樣安裝的話):

修改start_nginx.bat為:

@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5

REM 每個行程處理的最大請求數,或設定為Windows 環境變數

set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI…
RunHiddenConsole D:/wnmp/nginx-1.10.2/xxfpm/bin/xxfpm.exe “D:/wnmp/php-5.6/php-cgi.exe -c D:/wnmp/php-5.6/php.ini” -n 5 -i 127.0.0.1 -p 9000
echo Starting nginx…
RunHiddenConsole D:/wnmp/nginx-1.10.2/nginx.exe -p D:/wnmp/nginx-1.10.2
exit

修改stop_nginx.bat為:

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

現在在開啟nginx時,我們就同時開啟了5個php-cgi進程,因為我們傳了參數-n 為5。

php cgi 自動關閉怎麼辦

如果我們手動斷掉一個,會發現又多出來一個,還是5個。 xxfpm將會管理php-cgi,將其維持在5個php-cgi進程,防止cgi進程崩潰關閉。還有一點注意,監聽埠注意要與nginx的設定檔對齊。

以上是php cgi 自動關閉怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn