PHP是目前应用最广泛的web语言,但是有一个问题到如今PHP都更新到7.x了却一直没解决,那就是在windows服务器linux环境下php-cgi处理次数达到500的时候会自动停止进程。在linux中可以使用PHP-FPM作为进程管理器,会监听端口,默认为9000,守护进程,但是windows服务器linux环境下是没有PHP-FPM的, 那么在windows中该如何守护php-cgi进程,以防止经常性的崩溃呢?使用xxfpm吧,这款管理器是一位民间大神写的,在此表示感谢。下载地址:https://github.com/78/xxfpm。
xxfpm使用方法:
首先解压下载过来的文件,然后得到:
再将图中红框圈出来的文件复制到C:/Windows/SysWOW64目录下面,如果你是32位的那就复制到C:\Windows\System32。
然后WIN+R输入regsvr32pthreadgc2.dll,回车确认。如果出现报错:
那就使用下面的方法。pthreadgc2.dll目录下新建一个文件registe.bat,输入以下代码:
@echo 开始注册
copy pthreadgc2.dll %windir%\SysWOW64\
regsvr32 %windir%\SysWOW64\pthreadgc2.dll /s
@echo pthreadgc2.dll注册成功
@pause
如果32位的系统,请将SysWOW64替换为system32,然后直接保存运行,出现下图的提醒即可。
然后将下载的xxfpm.exe复制到nginx目录下,
再下载RunHiddenConsole.exe,
然后根据自己的文件路径修改start_nginx.bat
@echooff
REMWindows下无效
REMsetPHP_FCGI_CHILDREN=5
REM每个进程处理的最大请求数,或设置为Windows环境变量
setPHP_FCGI_MAX_REQUESTS=1000
echoStartingPHPFastCGI...
RunHiddenConsoleC:\phpStudy\PHPTutorial\nginx\xxfpm.exe"C:\phpStudy\PHPTutorial\php\php-5.4.45-nts\php-cgi.exe-cC:\phpStudy\PHPTutorial\php\php-5.4.45-nts\php.ini"-n5-i127.0.0.1-p9000
echoStartingnginx...
RunHiddenConsoleC:\phpStudy\PHPTutorial\nginx\nginx.exe-pC:\phpStudy\PHPTutorial\nginx
exit
修改好了之后直接运行start_nginx.bat即可。运行后我们会发现有五个php-cgi,而且关掉一个进程会发现立马又出来一个,始终保持在5个。
至此顺利的解决了windows服务器linux环境下PHP-CGI进程自动停止的问题了。
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理