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的配置文件相同。

windows下 解决PHP-CGI 进程崩溃502相关推荐

  1. Windows下解决adb连接不上的终极解决方案

    这几天突然从Mac系统换到Windows系统做Android开发,最头疼的是adb总是连接不上或是5037端口被占用,随后尝试关闭各种第三方的adb连接软件,还是有问题,无奈,转变一下思路,修改adb ...

  2. Windows下解决依赖动态库问题:bat脚本实现自动复制dll文件

    1. 问题 Windows下,exe文件在设计实现时可能依赖某些动态库(*.dll文件),这些在调试台调试或在本机运行因为指定了包含库文件或者指定了环境变量,使得运行时可以找到并调用这些文件.但是环境 ...

  3. Windows下解决TerminateThread终止线程导致死锁问题

    前面提到,调用TerminateThread终止线程曾导致栈变量回收出现问题,进而导致死锁.为了解决这个问题,只能等待各个子线程主动退出,由此导致资源访问的互斥问题. 为了解决这个问题,我建立了一个参 ...

  4. Windows下实现socketpair进行进程通信

    前言:行动是治愈拖延的良药,现代人所谓的拖延症都是对自己懒惰的借口. 一直说要看看libevent源码,却又一直拖着忙着,不知道在忙些什么.我说在公司看着那一堆乱七八糟的源码都看下去了,为什么不能花点 ...

  5. windows下解决pip安装出错问题

    今天使用pip install xxx突然报错,找了好久全是在linux上的解决方案,好不容易找到一个windows下的解决方案,所以将他记录下来. 解决方案: cmd中敲命令:python -m e ...

  6. windows下 , py运用了 进程池, 将py打包成exe,出现错误的 解决思路之一

    在windows上,用pycharm开发了一个小项目, 用到了from concurrent.futures import ProcessPoolExecutor 本来在pycharm里面,运行的好好 ...

  7. Windows下80端口被进程SystemPID=4占用的解决方法

    突然发现 80 端口被莫名占用,咋一看还是 System 这个进程 又无法结束这货,于是开始慢慢查看到底是什么东西占用了 首先,打开 cmd 跑这一句,80 端口被System 占用,肯定是 HTTP ...

  8. Windows 下80端口被进程 System PID=4 占用的解决方法

    80 端口被莫名占用,还是 System 这个进程,又无法结束这货.慢慢排查看到底是什么东东占用了. 打开 cmd 执行 netsh http show servicestate ,80 端口被Sys ...

  9. windows下解决8080端口被占用

    今天在windows环境下启动一个java后端项目时,报出8080端口被占用,解决思路是将占用端口的进程杀死(很暴力),步骤如下: Win + R 打开运行窗口,输入:cmd 并回车,打开命令行 首先 ...

最新文章

  1. 【洛谷 P4168】[Violet]蒲公英(分块)
  2. 在PPT的时候,发现用Python十几行代码就可以实现Logo换色
  3. HTML标签类型及特点
  4. 研究显示每天工作超8小时得心脏病概率增加80%,生命很重要,工作不要那个累。
  5. mkv210_image.c文件详解
  6. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...
  7. Optional容器类
  8. SPSS——描述性统计分析——频数分析
  9. 前端和后端的英文_前端开发与架构师
  10. 机器学习模型融合实战指南
  11. bilibili视频批量下载
  12. 2022-03-07 Influxdb创建用户接口与raft日志交互封装
  13. 樊登读书搞定读后感_《读懂一本书:樊登读书法》_精选读后感_500字
  14. 【强化学习】优势演员-评论员算法(Advantage Actor-Critic , A2C)求解倒立摆问题 + Pytorch代码实战
  15. thinkphp 之接收请求参数并过滤
  16. RDBMS和HDFS, HIVE, HBASE的迁移工具Sqoop
  17. 国际会议查询方式和相关会议
  18. nginx 集成lua操作mysql
  19. 为什么程序员是吃青春饭的但还是这么多想当程序员的?
  20. java alsa 编程_OSS音频编程实例

热门文章

  1. K-java安装教程
  2. easyExcel导出excel
  3. id在python中是什么意思_Python中的id()函数指的什么
  4. carsim+simulink联合仿真实现变道 包含路径规划算法+mpc轨迹跟踪算法 可选simulink版本和c++版本算法 可以适用于弯道道路,弯道车道保持,弯道变道
  5. 怎么写文案卖点?三个步骤就够了
  6. 打造新的教育生态环境,传智专修学院在江苏沭阳成立
  7. 【Unity】用Excel库读取Excel表格(.xlsx或者.xls)
  8. 基于主题模型的专利文本挖掘
  9. JavaScript 原型链和继承面试题
  10. python自动发邮件 百度网盘_python自动保存百度盘资源到百度盘中的实例代码