php是世界上最好的语言!!!!
距离xiaoxia发表xxfpm 已经十年了(具体截止到今天是9年11个月,上次xxfpm文章的发表时间是2011.02.01),而距其代码开源也已5年半有余,而xiaoxia的最后一篇博客停更在2015.11.05,不知道他是否已转战其他平台,比如博客园。
xxfpm是在windows服务器使用php时解决php-cgi-exe 总是崩溃的问题,原理是不断系统监听,如发现php进程数少于设定的数量则系统再次启动新进程,保证php不崩溃而可正常工作。但不知为何php官方到目前为止仍未解决该问题,只能依靠该个人开发者xxfpm工具在windows服务器上保证php的正常使用。而由于历史久远,原xxfpm遗留了部分使用体验问题,最近自己学习php接触到该问题,由于完美主义作祟,决定自己重新修改编译解决下原有的问题,于是有个该工具xxfpmW。关于xxfpmW的编写过程请看:xxfpmW 的诞生过程 。
原 xxfpm 链接地址:https://github.com/78/xxfpm
新 xxfpmW 地址在此:
国内码云地址:https://gitee.com/jying/xxfpmW
github地址:https://github.com/jying000/xxfpmW
以下是xxfpmW工具详情介绍:
xxfpmW
介绍
本工具为windows系统防止php崩溃的固定进程数工具,基于原xxfpm,但改进为可后台运行,运行日志和错误日志保存在txt文件中。去掉linux相关代码,解决关机时会弹出错误窗口提示的问题。
软件架构
C语言开发,编译工具为MinGW。
使用说明
-
将xxfpmW 文件夹放到自己系统对应的 php-cgi.exe 所在文件夹下。
-
鼠标右键编辑修改 xxfpmW.bat 中的启动进程数(默认为5)和监听端口(默认9000),如果不需要修改则忽略此步骤,直接执行步骤3。
-
双击文件 xxfpmW.vbe 运行即可,可在windows任务管理器中查看已运行的进程,也可通过日志查看运行情况。
手动关闭
不能直接关闭 php-cgi.exe (即任务管理器中的 CGI / FastCGI),因为启动了监听规则,会立刻开启新的进程,必须按如下步骤关闭。
-
任务管理器中右键 Microsoft ® Windows Based Script Host 结束任务。
-
任务管理器中右键 xxfpmW.exe 结束任务。
编译教程
如果想自己手动尝试编译生成exe文件,可尝试以下步骤,否则可忽略此内容
-
安装 MinGW 编译工具,并配置对应系统环境变量。安装教程自行查询。国内由于墙的原因可能安装gdb失败,(gdb是用于调试的)对于编译没有影响。
-
复制粘贴编译该项目需要的引用文件。
pthread.h 、 sched.h、 semaphore.h 三个头文件放到 MinGW/include文件夹,libpthread.a 放到 MinGW/lib文件夹。
-
启动 MinGW 执行编译,成功后会生成 xxfpmW.exe 文件。
gcc -Werror -o xxfpmW win10.c -lpthread -lWs2_32 -s