首页 > 系统 > windows

windows下 解决PHP-CGI 进程崩溃
时间:2018-07-21 18:20:56  点击: 来源:  作者:

使用nginx,碰到php 需要转发给 cgi程序。 关于FastCGI:全称 FastCGI Process Manager,是一种进程管理器,管理 cgi,市面上有很多进程管理器,PHP-FPM就是其中一种。PHP-FPM作为进程管理器,会监听端口,默认为9000,并且监听 ...

使用nginx,碰到php 需要转发给 cgi程序。
 
关于FastCGI
全称 FastCGI Process Manager,是一种进程管理器,管理 cgi,市面上有很多进程管理器,PHP-FPM就是其中一种。
PHP-FPM作为进程管理器,会监听端口,默认为9000,并且监听本机,只接收127.0.0.1
linux下通过 netstat -nlpt|grep php-fpm 查看,PHP-CGI 是PHP自带的FastCGI管理器,缺点:
  1. php-cgi更改 php.ini 配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启。
  2. 直接杀死php-cgi进程,php就不能运行了。(PHP-FPM和Spawn-FCGI就没有这个问题,守护进程会平滑从新生成新的子进程)
 
本篇只讲windows(64位)下,采用nginx,使用php-cgi解析,默认情况下,当 php-cgi 处理php 达到500次,就自动关闭,即不能解析PHP(这你妹也太坑了吧!都PHP7了,这个问题 还存在)
解决方法:采用xxfpm,管理FastCGI进程.下载地址:https://github.com/78/xxfpm,在此非常感谢这位大哥。
 
安装xxfpm管理器

 
下载地址:
https://github.com/78/xxfpm
http://mirror.cnop.net/web/nginx/windows/xxfpm-master.zip
用到的文件: pthreadGC2.dll , xxfpm.exe
 
1. xxfpm.exe,解压后可以和nginx放同一目录也可放其他目录 (文件在bin文件夹下)。
2. 找到 pthreadGC2.dll , 将这个文件复制到 C:/Windows/SysWOW64 目录(如果系统是32位的,将dll文件复制到 C:/Windows/System32 下);
3. 新建一个文件 registe.bat,和pthreadgc2.dll同目录,内容如下,完成后双击registe.bat文件运行下:
@echo 开始注册
copy pthreadgc2.dll %windir%/SysWOW64/
regsvr32 %windir%/SysWOW64/pthreadgc2.dll /s
@echo pthreadgc2.dll 注册成功
@pause
 
4.将下载的xxfpm.exe copy 到nginx目录下(这里以我的目录 d:/nginx 为例)。
5.下载 RunHiddenConsole.exe(用于后台运行nginx)并解压:
下载地址 : http://mirror.cnop.net/web/nginx/windows/RunHiddenConsole.zip
 
start_nginx.bat #文件说明:这里我们仍然以解压到nginx目录为例,-n后面为启动个数,php位置请根据情况调整
 
@echo off
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole d:/nginx/xxfpm.exe "d:/php/php-cgi.exe -c d:/php/php.ini" -n 5 -i 127.0.0.1 -p 9000
echo Starting nginx...
RunHiddenConsole d:/nginx/nginx.exe -p d:/nginx
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
 
6.现在运行 start_nginx.bat,等于同时开启5个php-cgi进程,因为我们传了参数 -n 为5,如果手动断掉一个,会发现又多出来一个,还是5个,
因为xxfpm会管理php-cgi,将其维持在5个php-cgi进程,防止cgi进程崩溃关闭。
 
 
”您可通过以下微信二维码,赞赏作者“
 
 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
windows如何挂载webdav?
windows如何挂载webda
linux服务器同步互联网时间
linux服务器同步互联
亚马逊云lightsail服务器使用教程 | 亚马逊云lightsail使用指南
亚马逊云lightsail服
hostdare 4折优惠,直接降价60% 美国洛杉矶低至 $10.4/年 768M内存/1核/10gNVMe/500g流量
hostdare 4折优惠,直接
相关文章
栏目更新
栏目热门

关于我们 | 广告服务 | 联系我们 | 网站地图 | 免责声明 | WAP | RSS


Copyright © 运维之家 2013-2024