与时俱进,精研业务
编者按:打开网址https://github.com/78/xxfpm,选择下载https://github.com/78/xxfpm/archive/refs/heads/master.zip,用来开启 PHP-CGI 多进程。xxfpm压缩包解压后找到bin文件夹,将xxfpm.exe和pthreadGC2.dll复制到你在php安装根目录下新建的xxfpm文件夹中。下载一个后缀
一、问题提出:windows+Nginx环境下,php-cgi.exe运行一段时间就可能会遭遇不明原因自动关闭退出,此时访问网站页面Nginx会提示502 Bad Gateway错误,面临此等不断发生的间歇性问题,那又该如何合理解决它呢?
二、解决路径:思路就是可以将php-cgi.exe安装为windows系统自动启动服务并进行实时监控,一旦php-cgi.exe进程因不明原因遭遇非正常关闭退出,系统即时发现后可对其马上重启以不间断为网民提供访问服务。
1.打开网址https://github.com/78/xxfpm,选择下载https://github.com/78/xxfpm/archive/refs/heads/master.zip文件。
2.master.zip文件压缩包解压后找到 bin 目录,将其下面的xxfpm.exe 和 pthreadGC2.dll两个文件复制到你windows服务器上的php安装根目录下新建的 xxfpm 文件夹中。
3.访问以下网址并选择下载一个后缀为.NET4.exe的文件,具体如下:
https://github.com/winsw/winsw/releases
https://github.com/winsw/winsw/releases/download/v2.11.0/WinSW.NET4.exe

4. 将下载下来的WinSW.NET4.exe文件更名为php-service.exe,然后把它复制到你php安装根目录下新建的 xxfpm 文件夹中。
5.在 xxfpm 文件夹中新建php-service.xml文件,在其中输入以下示范代码,可根据你的实际情况加以调整:
<service>
<id>PHP-CGI</id>
<name>PHP-CGI</name>
<description>PHP-CGI</description>
<executable>xxfpm.exe</executable>
<!-- 启动参数 -->
<startargument>"D:/php/php-cgi.exe -c D:/php/php.ini"</startargument>
<startargument>-n</startargument>
<!-- 启动进程数量,可修改,建议大于 1 -->
<startargument>2</startargument>
<startargument>-i</startargument>
<!-- 监听IP,默认一般都用 127.0.0.1 -->
<startargument>127.0.0.1</startargument>
<startargument>-p</startargument>
<!-- 监听端口,默认一般都用 9000 -->
<startargument>9000</startargument>
<!-- 停止参数 -->
<stopexecutable>taskkill</stopexecutable>
<stopargument>/F</stopargument>
<stopargument>/IM</stopargument>
<stopargument>xxfpm.exe</stopargument>
<logpath>logs</logpath>
</service>
(如果你服务器安装了多个php版本,可举一反三安装多个php系统服务,但要注意监听端口9000要做调整,比如端口相应调整为9001)
6.在运行输入框中输入cmd进入dos命令行界面并切换到xxfpm目录下,运行php-service.exe install命令行并执行。安装windows系统服务成功。

(如果您的php-cgi在适用上述措施后,还会遭遇不明故障,可以调整一下设置。)


(以上均为维护服务器过程中的实操分享,如您有疑问可以添加邓杰律师微信交流)
本文标签:

专注执业领域事务
全力办理委托事项
扎实维护合法权益

24小时免费咨询
请输入您的联系电话,座机请加区号
