原创日志

windows下使用winsw-1.18,把nginx和xxfpm,php php-cgi fastcgi 程序安装成服务运行

[ 2025-04-25 10:59:56 | 作者: admin ]
字号: | |
第一步:nginx的服务配置
进入nginx文件目录,复制winsw-1.18,改winsw-1.18.exe为nginx-service.exe,
当前目录下新建 nginx-service.xml,内容如下:
<service>
  
   <id>nginx</id>
   <name>nginx</name>
   <description>nginx</description>
   <logpath>D:/nginx1.19.5/logs</logpath>
   <logmode>rotate</logmode>

     <depend></depend>
     <workingdir>D:/nginx1.19.5</workingdir>
     <executable>D:/nginx1.19.5/nginx.exe</executable>
     <stopexecutable>D:/nginx1.19.5/nginx.exe -s stop</stopexecutable>

</service>

接着在dos下运行下面代码安装nginx服务
nginx-service.exe install



第二步:nginx下php的fastcgi的服务配置
进入php文件目录D:/php5.6,然后目录下生成下面几个文件:
c:/windows/system32/pthreadgc2.dll (不重启的话,需要用regsvr32注册下)
D:/php5.6/xxfpm.exe
D:/php5.6/xxfpm-service.exe
D:/php5.6/xxfpm-service.xml
D:/php5.6/xxfpmstop.bat

先下载xxfpm.exe,需要注意不能直接使用php-cgi.exe,没有fpm进程管理器,php-cgi会经常自己结束监听,然后返回502
xxfpm(跨平台FastCGI进程管理器)下载官方地址:https://github.com/78/xxfpm 或作者博客 https://xiaoxia.org/2011/02/01/xxfpm-wrote-a-fastcgi-process-manager/
然后复制winsw-1.18,改winsw-1.18.exe为xxfpm-service.exe
当前目录下新建 xxfpm-service.xml,内容如下:
<service>
  
   <id>nginx-xxfpm</id>
   <name>nginx-xxfpm</name>
   <description>nginx-xxfpm</description>
   <logpath>D:/php5.6/log</logpath>
   <logmode>rotate</logmode>

     <depend></depend>
     <workingdir>D:/php5.6/</workingdir>
     <executable>D:/php5.6/xxfpm.exe</executable>
     <arguments> D:/php5.6/php-cgi.exe -n 5 -i 127.0.0.1 -p 9010</arguments>
     <stopexecutable>xxfpmstop.bat</stopexecutable>
</service>

注意,如果php-cgi要指定php.ini路径,可以这样写:
           <executable>D:/php5.6/xxfpm.exe</executable>
           <arguments> "D:/php5.6/php-cgi.exe -c D:/php5.6/php.ini" -n 5 -i 127.0.0.1 -p 9010</arguments>

其中 xxfpmstop.bat 的停止xxfpm打开的php-cgi,脚本如下:
taskkill /f /im php-cgi.exe

接着在dos下运行下面命令来安装服务 nginx-xxfpm,
xxfpm-service.exe install

dos下面可以用下面命令查看是否php-cgi会自动结束进程,停止监听9010端口
netstat -ano | findstr "9010"

其他说明:
如果nginx-xxfpm 服务启动失败,可以注册下pthreadgc2.dll文件
下载地址:https://www.dll-files.com/pthreadgc2.dll.html
把pthreadgc2.dll复制到 c:\windows\system32,然后运行命令注册
regsvr32 pthreadgc2.dll

参考:https://www.cnblogs.com/swtjavaspace/p/18328932
[最后修改由 admin, 于 2026-01-06 16:59:24]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2996

这篇日志没有评论。

此日志不可发表评论。