溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何解決php中cgi自動(dòng)關(guān)閉的問(wèn)題

發(fā)布時(shí)間:2020-09-08 10:37:09 來(lái)源:億速云 閱讀:436 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下如何解決php中cgi自動(dòng)關(guān)閉的問(wèn)題,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

php cgi自動(dòng)關(guān)閉的解決辦法:首先完成“pthreadgc2.dll”注冊(cè);然后將xxfpm目錄復(fù)制到nginx下;接著修改“RunHiddenConsole”啟動(dòng)關(guān)閉文件;最后設(shè)置Windows環(huán)境變量即可。

如何解決php中cgi自動(dòng)關(guān)閉的問(wèn)題

解決windows下php-cgi進(jìn)程經(jīng)常自動(dòng)關(guān)閉

php-cgi在linux中有fpm管理,Apache不是采用cgi這種模式,于是乎就出現(xiàn)了,在windows下,采用nginx時(shí),開(kāi)啟的php-cgi監(jiān)聽(tīng)非常不穩(wěn)定,經(jīng)常奔潰關(guān)閉。現(xiàn)在解決了這個(gè)問(wèn)題。注意是win32位系統(tǒng)下解決的,雖然服務(wù)器上64位系統(tǒng)也跑起來(lái)了,但是環(huán)境裝的都是32位的。

采用了這個(gè)叫xxfpm的FastCGI進(jìn)程管理器:xxfpm

下載后運(yùn)行xxfpm.exe,如果出現(xiàn)報(bào)錯(cuò)缺少pthreadgc2.dll,需要下載pthreads-win32:http://sourceware.org/pthreads-win32/

如何解決php中cgi自動(dòng)關(guān)閉的問(wèn)題

將這個(gè)文件復(fù)制到C:/Windows/System32下(如果系統(tǒng)是64位的請(qǐng)將32位的dll文件復(fù)制到C:\Windows\SysWOW64目錄);

然后打開(kāi)“開(kāi)始-運(yùn)行-輸入regsvr32 pthreadgc2.dll”,回車(chē),如果報(bào)錯(cuò),用下面的方法。

新建一個(gè)文件“注冊(cè).bat“,內(nèi)容:

@echo 開(kāi)始注冊(cè)
copy pthreadgc2.dll %windir%\system32\
regsvr32 %windir%\system32\pthreadgc2.dll /s
@echo pthreadgc2.dll注冊(cè)成功
@pause

雙擊注冊(cè).bat,就會(huì)自動(dòng)完成pthreadgc2.dll注冊(cè)(如果64位的系統(tǒng)安裝32位的dll文件,請(qǐng)將system32替換為SysWOW64)。完了就可以將這個(gè)文件刪了。

接下里將下載下來(lái)的xxfpm目錄copy到nginx下:

如何解決php中cgi自動(dòng)關(guān)閉的問(wèn)題

為了方便修改一下當(dāng)初安裝nginx時(shí)的RunHiddenConsole啟動(dòng)關(guān)閉文件(如果你是在windows手動(dòng)搭建Nginx環(huán)境這樣安裝的話):

修改start_nginx.bat為:

@echo off
REM Windows 下無(wú)效
REM set PHP_FCGI_CHILDREN=5

REM 每個(gè)進(jìn)程處理的最大請(qǐng)求數(shù),或設(shè)置為 Windows 環(huán)境變量

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

現(xiàn)在在開(kāi)啟nginx時(shí),我們就同時(shí)開(kāi)啟了5個(gè)php-cgi進(jìn)程,因?yàn)槲覀儌髁藚?shù) -n 為5。

如何解決php中cgi自動(dòng)關(guān)閉的問(wèn)題

如果我們手動(dòng)斷掉一個(gè),會(huì)發(fā)現(xiàn)又多出來(lái)一個(gè),還是5個(gè)。xxfpm將會(huì)管理php-cgi,將其維持在5個(gè)php-cgi進(jìn)程,防止cgi進(jìn)程崩潰關(guān)閉。還有一點(diǎn)注意,監(jiān)聽(tīng)端口注意與nginx的配置文件對(duì)齊。

看完了這篇文章,相信你對(duì)如何解決php中cgi自動(dòng)關(guān)閉的問(wèn)題有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI