windows下 解决PHP-CGI 进程崩溃502

news/2024/5/17 15:45:04/文章来源:https://blog.csdn.net/weixin_42272246/article/details/127092860

PHP是世界上最好的语言,但需要PHP解析器;Apache+php,需要通过mod_php.so和php相连;nginx+php 需要转发给 cgi程序

关于FastCGI:
全称 FastCGI Process Manager,是一种进程管理器,管理 cgi,市面上有很多进程管理器,PHP-FPM就是其中一种。

linux环境:PHP-FPM作为进程管理器,会监听端口,默认为9000,并且监听本机,只接收127.0.0.1,可以通过 netstat -nlpt|grep php-fpm 查看

Windows环境:默认会通过PHP-CGI 作为进程管理器,PHP自带的FastCGI管理器,

缺点:

  1. php-cgi更改 php.ini 配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启
  2. 直接杀死php-cgi进程,php就不能运行了。(PHP-FPM和Spawn-FCGI就没有这个问题,守护进程会平滑从新生成新的子进程)
  3. 默认情况下,当 php-cgi 处理php 达到500次,就自动关闭,即不能解析PHP

windows(64位)下,nginx使用php-cgi解析如何解决PHP-CGI 进程崩溃的问题:
解决方法:采用xxfpm,管理FastCGI进程.

下载地址: windows下解决PHP-CGI进程崩溃502的资源包-PHP文档类资源-CSDN下载

1.首先安装 xxfpm.exe管理器

在下载包里找到 pthreadGC2.dll文件,将这个文件复制到C:/Windows/SysWOW64目录(如果系统是32位的,将dll文件复制到C:WindowsSystem32下);

在C:/Windows/SysWOW64目录,新建一个文件 registe.bat,和pthreadgc2.dll同目录

 @echo 开始注册copy pthreadgc2.dll %windir%SysWOW64regsvr32 %windir%SysWOW64pthreadgc2.dll /s@echo pthreadgc2.dll注册成功@pause

运行registe.bat,便会完成pthreadgc2.dll注册(如果32位的系统,请将system32替换为system32)。完了就可以将registe.bat删了

2.将下载的xxfpm.exe copy 到nginx目录下,

3.新建restart_nginx.bat

    @echo offREM Windows 下无效REM set PHP_FCGI_CHILDREN=5REM 每个进程处理的最大请求数,或设置为 Windows 环境变量set PHP_FCGI_MAX_REQUESTS=1000echo 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 9000echo Starting nginx...RunHiddenConsole C:/wnmp/nginx/nginx.exe -p C:/wnmp/nginxexit

4.新建stop_nginx.bat

5.现在运行 stop_nginx.bat,等于同时开启5个php-cgi进程,因为我们传了参数 -n 为5

6.如果我们手动断掉一个,会发现又多出来一个,还是5个。
这是因为xxfpm会管理php-cgi,将其维持在5个php-cgi进程,防止cgi进程崩溃关闭。
还有一点注意,监听端口注意与nginx的配置文件相同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_15702.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1474_AURIX TC275 WDT的运行模式

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 1. 前面的内容中其实已经看到了,这个看门狗的时钟其实是固定的,SPB的时钟。这样,后面了解时钟树的时候需要注意一下。其实,在功能安全的失效…

ES6--》一文搞懂JS中的Promise

目录 Promise Promise使用 Promise封装Ajax请求 Promise封装读取文件 Promise.prototype.then 方法 Promise多文件读取 Promise.prototype.catch() Promise.prototype.finally() Promise.all() Promise.race() Promise.allSettled() Pomise.any() Promise.resolve…

微信小程序开发入门与实战(Behaviors使用)

作者 : SYFStrive 博客首页 : HomePage 📜: 微信小程序 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &#x1f4…

【原创】基于JavaWeb的社区疫情防控管理系统(疫情防控管理系统毕业设计)

项目介绍:后端采用JspServlet。前端使用的是Bootstrap的一个网站模板。开发一个在线的社区疫情防控管理系统。从角色的划分,包括用户、社管员、管理员。功能模块上包括了社区公告发布、高风险地区记录、地区感染信息管理、社区出入登记管理、行程信息管理…

关于maven生命周期的理解

晚上有点无聊,看到了一些东西引发了自己的思路,就想将maven的一些东西总结总结,有从网上抄的,也有自己的思路。 一、生命周期是指什么(lifecycle) Maven的生命周期就是对所有的构建过程进行抽象和统一。包…

Posix与System V IPC

Posix与System V IPC一、Posix IPC1.概述2.IPC名字3.px_ipc_name函数3.创建与打开IPC通道4.IPC权限二、System V IPC1.概述2.key_t键和ftok函数3.ipc_perm结构4.创建与打开IPC通道5.IPC权限6.标识符重用7.ipcs和ipcrm程序8.内核限制一、Posix IPC 1.概述 三种类型的IPC合称为…

Redux的基本使用过程详解

文章目录Redux的使用过程Redux测试项目的搭建Redux的基本使用步骤Redux目录的结构划分React的三大原则Redux的使用过程 Redux测试项目的搭建 1.创建一个新的项目文件夹:learn-redux # 执行初始化操作 npm init -y或yarn init -y # 安装redux:npm install redux --save或yarn …

自定义View 布局过程(Layout)

目录一、作用二、layout过程详解2.1单一View的layout过程具体使用具体流程源码分析总结2.2ViewGroup的layout过程具体使用具体流程源码分析总结三、细节问题:getWidth() ( getHeight())与 getMeasuredWidth() (getMeasuredHeight(…

Java高级——编译JDK

编译JDKJDK是什么?编译环境搭建JDK下载编译参数编译在IDE中调试源码JDK是什么? Java Development Kit,用于执行和开发java程序 编译环境搭建 本文采用Ubantu 18.04 执行以下命令安装依赖 apt-get install build-essential apt-get instal…

Transformer

参考 https://www.ylkz.life/deeplearning/p12158901/ https://zhuanlan.zhihu.com/p/396221959 模型结构 Input Embedding 将文本中词汇的数字表示转变为向量表示, 希望得到其在高维空间中的特征表示向量。 # 导入必备的工具包 import torch import torch.nn as nn import …

Qt5开发从入门到精通——第九篇一节( Qt5 文件及磁盘处理—— 读写文本文件)

CSDN话题挑战赛第2期 参赛话题:学习笔记 欢迎小伙伴的点评✨✨,相互学习c/c应用开发。🍳🍳🍳 博主🧑🧑 本着开源的精神交流Qt开发的经验、将持续更新续章,为社区贡献博主自身的开源精…

esp32-C3 CAN接口使用

esp32-C3 CAN接口使用功能概述CAN协议关注点接收过滤器单过滤器模式双过滤器模式关键函数说明配置和安装驱动获取TWAI状态信息发送/接收消息使用示例CAN控制器自回环测试CAN收发带过滤测试功能概述 ESP32-C3具有1个CAN控制器支持以下特性: 兼容ISO 11898-1协议(CA…

伟大的micropython smartconfig 配网它来了!!!

我这其实只是实验和搬运,还是感谢伟大的walkline群主,他弄好的,我只是负责搬运发布给新手看。 之前一大堆人问我配网的事儿,输入下wifi名称密码这么麻烦吗,好吧,有求必应,之前的配网是通过ap模式…

PICO高管专访:关于PICO 4硬件、内容、定价、海外布局的一切解答

PICO 4昨天正式在国内发布,简单来说这是一款相对均衡的VR一体机,在硬件素质、内容生态建设上都可圈可点,对于国内还未入手VR的朋友们来说是非常好的选择。相关阅读:《PICO 4评测:Pancake光学新标杆,VR娱乐V…

20【访问者设计模式】

文章目录二十、访问者设计模式20.1 访问者设计模式简介20.1.1 访问者设计模式概述20.1.2 访问者设计模式的UML类图20.2 访问者设计模式的实现20.3 访问者设计模式的优缺点二十、访问者设计模式 20.1 访问者设计模式简介 20.1.1 访问者设计模式概述 访问者设计模式&#xff0…

计算机网络基础 VLSM----可变长子网掩码;CIDR技术----无类域间路由;

VLSM----可变长子网掩码: 概述: 通过网络位向主机位借位的方式,延长子网掩码,从而达到将一个大网络划分为多个小网络;借出的位数称之为子网位,决定了能划分网络的个数。 优点: 更高效的利用…

记一次导入下载好的源码工程到本地工程异常解决方案

今天在学习okhttp相关视频时,安装视频的操作在自己的工程中引入三方的模块,但是发现引入后和预期的不一致。不一致指的是,视频中以module方式引入sample-okhttp并解决冲突后,sample-okhttp能够被android stuidio识别为applicayion…

Style样式设置器

构成Style最重要的两种元素: Setter类帮助我们设置控件的静态外观风格 Trigger类则帮助我们设置控件的行为风格。 Setter,设置器,我们给属性赋值的时候一般都采用“属 性名属性值”的形式 上面的例子中针对TextBlock的Style,Style中使用 若…

解决csdn强制关注博主才能阅读文章

问题 有的时候查阅资料的时候,关注博主并不是很方便,查csdn会出现下面的提示解决办法 打开控制台输入以下代码: var article_content=document.getElementById("article_content"); article_content.removeAttribute("style");var follow_text=document…

深入理解计算机系统——第七章 Linking

深入理解计算机系统——第七章 Linking7.1 Compiler Drivers7.2 Static Linking7.3 Object Files7.4 Relocatable Object Files7.5 Symbols and Symbol Tables7.6 Symbol Resolution7.6.1 How Linkers Resolve Duplicate Symbol Names7.6.2 Linking with Static Libraries7.6.3…