Home  >  Article  >  Backend Development  >  What to do if php cgi automatically closes

What to do if php cgi automatically closes

藏色散人
藏色散人Original
2020-09-04 10:02:163658browse

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.

What to do if php cgi automatically closes

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/

What to do if php cgi automatically closes

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:

What to do if php cgi automatically closes

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.

What to do if php cgi automatically closes

#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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn