php cgi automatic shutdown solution: first complete the registration of "pthreadgc2.dll"; then copy the xxfpm directory to nginx; then modify the "RunHiddenConsole" startup and shutdown file; and finally set the Windows environment variables.
Recommended: "PHP Video Tutorial"
Solution to the problem that the php-cgi process under Windows often closes automatically
php-cgi has fpm management in Linux. Apache does not use cgi mode, so it appears. Under windows, when using nginx, the enabled php-cgi monitoring is very unstable. , often crashes and shuts down. This problem is now solved. Note that it is solved under win32-bit system. Although the 64-bit system is also running on the server, the environment is all 32-bit.
Used the FastCGI process manager called xxfpm: xxfpm
After downloading, run xxfpm.exe. If an error occurs and pthreadgc2.dll is missing, you need to download pthreads-win32: http://sourceware .org/pthreads-win32/
Copy this file to C:/Windows/System32 (if the system is 64-bit, please copy the 32-bit dll file to C:\Windows\SysWOW64 directory);
Then open "Start-Run-Enter regsvr32 pthreadgc2.dll" and press Enter. If an error is reported, use the following method.
Create a new file "Registration.bat", content:
@echo 开始注册 copy pthreadgc2.dll %windir%\system32\ regsvr32 %windir%\system32\pthreadgc2.dll /s @echo pthreadgc2.dll注册成功 @pause
Double-click registration.bat, and pthreadgc2.dll registration will be automatically completed (if a 64-bit system installs a 32-bit dll file, Please replace system32 with SysWOW64). When finished, you can delete this file.
Next, copy the downloaded xxfpm directory to nginx:
In order to facilitate the modification of the RunHiddenConsole startup and shutdown file when nginx was originally installed (if If you manually set up the Nginx environment in Windows and installed it like this):
Modify start_nginx.bat to:
@echo off REM Windows 下无效 REM set PHP_FCGI_CHILDREN=5
REM The maximum number of requests processed by each process, or set it to the Windows environment variable
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
Modify stop_nginx.bat to:
@echo off echo Stopping nginx… taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI… taskkill /F /IM xxfpm.exe > nul exit
Now when we start nginx, we open 5 php-cgi processes at the same time because we passed the parameter -n to 5.
#If we manually break one, we will find that there is another one, still 5. xxfpm will manage php-cgi and maintain it in 5 php-cgi processes to prevent the cgi process from crashing and shutting down. Another thing to note is that the listening port should be aligned with the nginx configuration file.
The above is the detailed content of What to do if php cgi automatically closes. For more information, please follow other related articles on the PHP Chinese website!