php 进程管理那点事

之前本地开发和环境一直用的集成环境,最近新项目 集成了php7+nginx

跑了一段时间发现偶尔 有php进程退出的情况   排查原因  nginx log: 1111 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while connecting to upstream,..... 意思是上游 服务关闭  那就是php 的原因了

查看php log:  竟然没有错误!!!!!

百度 一下

原来 php-cgi 是PHP自带的FastCGI管理器

php-fpm 是unix/linux系统下的进程管理器

iis 自己实现了FastCGI进程管理

继续百度 找到这段话 

默认情况下,当 php-cgi 处理php 达到500次,就自动关闭,即不能解析PHP

 解除了疑惑,顺带还给个解决方案 

就是自行安装FastCGI进程管理器

xxfpm

https://github.com/78/xxfpm

安装也很简单,下载下来

将pthreadgc2.dll 复制到C:/Windows/SysWOW64目录 如果系统是32位的,复制到C:\Windows\System32下

打开"开始-运行-输入regsvr32 pthreadgc2.dll
如果报错 新建一个bat文件 和pthreadgc2.dll同目录 运行bat文件

 @echo 开始注册
 copy pthreadgc2.dll %windir%\SysWOW64\
 regsvr32 %windir%\SysWOW64\pthreadgc2.dll /s
 @echo pthreadgc2.dll注册成功
 @pause

ps:我没做这一步 正常启动了

 

下载 RunHiddenConsole.exe(网上多得很搜一下就有) 编写 启动脚本  注意脚本路径根据实际路径写

 start.bat

   @echo off
    REM Windows 下无效
    REM set PHP_FCGI_CHILDREN=5
    REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
    set PHP_FCGI_MAX_REQUESTS=1000
    echo Starting PHP FastCGI...
    RunHiddenConsole C:/wnmp/nginx/xxfpm/xxfpm.exe "C:/wnmp/php/php-cgi.exe -c C:/wnmp/php/php.ini" -n 5 -i 127.0.0.1 -p 9000
    echo Starting nginx...
    RunHiddenConsole C:/wnmp/nginx/nginx.exe -p C:/wnmp/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

运行 ok

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值