• 欢迎访问挑战自我博客网站,安全研究,web渗透,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入挑战自我博客网站 网站主页

如何维持windows下php-cgi进程的稳定性

site 挑战自我 1452次浏览 已收录 0个评论

如何维持windows下php-cgi进程的稳定性

内容简介

关于这个问题,一直纠结了很久。因为php-cgi在linux中由fpm负责管理,Apache也不采用cgi这种模式,所以当在windows系统下使用nginx时,启用的php-cgi进程就很不稳定,经常奔溃退出。找了很多资料终于解决了这个问题,我利用了一个叫作xxfpm的FastCGI进程管理器,下载地址见文末

详细解决方案

下载后运行xxfpm.exe,如果出现报错缺少pthreadgc2.dll,需要下载pthreads-win32,地址如下:
http://sourceware.org/pthreads-win32/
下载完成之后把它放到对应的系统目录
c:\windows\system32\
然后利用系统命令执行该dll程序的注册:
regsvr32 c:\windows\system32\pthreadgc2.dll /s
接下里将下载下来的xxfpm目录copy到nginx下,在cmd下运行可以查看xxfpm的帮助信息
如何维持windows下php-cgi进程的稳定性

相关脚本工具

为了操作方便,我们利用启动进程隐藏工具RunHiddenConsole来进行web相关进程的启动工作,建立两个bat文件,一个叫做start.bat,用于启动web,另一个叫做stop.bat,用于关闭web。

start.bat的内容如下

@echo off
REM set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI…
RunHiddenConsole C:\web\nginx\xxfpm\bin\xxfpm.exe "C:\web\php7\php-cgi.exe -c C:\web\php7\php.ini" -n 5 -i 127.0.0.1 -p 9000
echo Starting nginx…
RunHiddenConsole C:\web\nginx\nginx.exe -p C:\web\nginx\
exit

stop.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
 如何维持windows下php-cgi进程的稳定性

相关工具文件下载:

RunHiddenConsole
xxfpm:https://github.com/78/xxfpm

挑战自我博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何维持windows下php-cgi进程的稳定性
喜欢 (10)
支付宝[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址