解决windows+nginx下 PHP-CGI 进程崩溃问题

本地开发系统使用的是windows系统下,配置的 nginx+php,在使用过程中总是出现崩溃现象,网上搜解决办法时,很多网友说是PHP-CGI 进程崩溃 造成的,当 php-cgi 处理php 达到500次,就自动关闭。也给出了解决办法。

解决的办法就是使用 xxfpm,管理FastCGI进程,xxfpm可以控制启动 FastCGI的进程数量。进程挂掉后会自动启动一个新的进程。git地址:https://github.com/78/xxfpm

启动脚本如下,配置了多个版本的PHP,PHP 和nginx 也要进行相应的设置,其中用到了RunHiddenConsole ,需要单独进行下载:https://github.com/wenshui2008/RunHiddenConsole

-n 3 就是启动的进程数

-p 20056 是php-cgi 的端口,nginx 配置PHP时要用到 fastcgi_pass 127.0.0.1:20056;

@echo off

echo Stopping nginx...  
taskkill /F /IM nginx.exe > nul

echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
taskkill /F /IM xxfpm.exe > nul

set PHP_FCGI_MAX_REQUESTS = 1000

echo Starting PHP FastCGI...
RunHiddenConsole xxfpm.exe "D:/NMP/php5.6/php-cgi.exe -c D:/NMP/php5.6/php.ini" -n 3 -i 127.0.0.1 -p 20056
RunHiddenConsole xxfpm.exe "D:/NMP/php7.2/php-cgi.exe -c D:/NMP/php7.2/php.ini" -n 3 -i 127.0.0.1 -p 20072
RunHiddenConsole xxfpm.exe "D:/NMP/php7.4/php-cgi.exe -c D:/NMP/php7.4/php.ini" -n 3 -i 127.0.0.1 -p 20074
RunHiddenConsole xxfpm.exe "D:/NMP/php8.0/php-cgi.exe -c D:/NMP/php8.0/php.ini" -n 3 -i 127.0.0.1 -p 20080
RunHiddenConsole xxfpm.exe "D:/NMP/php8.1/php-cgi.exe -c D:/NMP/php8.1/php.ini" -n 3 -i 127.0.0.1 -p 20081

echo Starting nginx...
RunHiddenConsole D:/NMP/nginx-1.20.2/nginx.exe -p D:/NMP/nginx-1.20.2/

exit

注意:RunHiddenConsole 和 xxfpm.exe 的目录设置,如果 xxfpm启动出现错误,需要将下载 xxfpm的压缩包内 pthreadgc2.dll 复制到 C:/Windows/SysWOW64 目录(如果系统是32位的,将dll文件复制到C:WindowsSystem32下)。

运行后会出现15个进程(3*5个PHP版本)

解决windows+nginx下 PHP-CGI 进程崩溃问题

上面说 当 php-cgi 处理 php 达到500次,就自动关闭,特意做了一下测试,前500次返回200,第501次时返回了 502。使用 xxfpm方式启动后就不会出现 502 的情况了

解决windows+nginx下 PHP-CGI 进程崩溃问题

原创文章,作者:admin,如若转载,请注明出处:https://ntib.cn/183.html

(0)
adminadmin
上一篇 2023年11月18日 下午10:54
下一篇 2023年11月18日 下午10:56

相关推荐

  • 迅时网关默认IP及用户名

    MX120G是迅时推出的大容量、高性能、高可靠的语音接入网关,支持完备的办公电话功能,提供灵活多样的接入手段。MX120G具有极高的性价比,特别适用于大型呼叫中心和高端IP语音集成…

    2018年11月18日
  • CentOS shell 检测服务状态

    CentOS shell 检测服务状态,可以在停止的时候自动启动,用于服务器的进程守护 如果只在没有允许时启动服务可以使用下面的代码

    记事本 2024年1月6日
  • 讯时MX120 语音网关配置

    迅时语音网关_MX120VoIP接入网关最大可配置96个模拟电话端口(FXS)和模拟外线端口(FXO),适用于运营商和大中型企业IP语音网部署、呼叫中心解决方案以及模拟“落地”等应…

    2021年11月18日
  • 银河麒麟V10服务器安装PHP8

    麒麟服务器安装PHP默认安装的是 PHP 7.2.34,如果安装高版本需要自己编译安装或者使用其它安装源 安装remi 源时,安装出错 只能手动创建repo,文件进行安装 然后就可…

    2024年8月9日
  • CentOS7 安装 FreeSWITCH 配置呼叫中心

    公司前段时间需要开发呼叫系统与内部客户管理系统进行对接,在客户管理系统中直接拨号进行打电话,同时还需要对每通电话进行录音,统计每个员工的通话时长等。在网上查资料最终选择开源系统Fr…

    2018年11月18日
  • TCPDF将中文字体设置为内嵌字体的方法

    PHP的PDF扩展库TCPDF将中文字体设置为内嵌字体的方法 下载要设置的字体,如名为simfang.ttf,放在./vendor/tecnickcom/tcpdf/tools目录…

    记事本 2023年11月18日
  • ThinkPHP3.2添加Workerman

    ThinkPHP3.2版本没有默认添加Workerman,我们可以自己添加类库的方式进行添加,首先现在Workerman最新版 下载地址:https://www.workerman…

    2018年11月18日
  • ThinkPHP模型事件

    模型事件是指在进行模型的写入操作的时候触发的操作行为,包括模型的save方法和delete方法。 模型事件包括下面几种,分为新增前后、更新前后、写入前后、和删除前后,暂时称4个分组…

    记事本 2023年11月18日
  • mysql 将一个表中的数据更新到另一个表中

    update table_a ,table_bset table_a.field = table_b.fieldwhere table_a.id= table_b.aid 将 ta…

    记事本 2023年11月18日
  • wordpress 绑定多个域名方法

    WordPress在安装的时候会默认绑定当前的域名,如安装时域名为 a.com,在访问www.a.com时,会自动跳到a.com,绑定其它域名时也会跳转,给大家分享一下WordPr…

    记事本 2023年11月18日

发表回复

登录后才能评论
WeChat