Nginx搭建PHP运行环境在Windo

北京中科中医院 https://wapjbk.39.net/yiyuanfengcai/lx_bjzkbdfyy/

php-cgi在linux中有fpm管理,Apache不是采用cgi这种模式,于是乎就出现了,在windows下,采用nginx时,开启的php-cgi监听非常不稳定,经常奔溃关闭。

xxfpm一个小巧的FastCGI进程管理器

xxfpm可以很好的解决这个问题,对于用php的人,有了这个东西来维护一定数量的进程,就能制服经常崩溃退出的php-cgi。

Usage:xxfpmpath[-nnumber][-iip][-pport]ManageFastCGIprocesses.-n,–numbernumberofprocessestokeep-i,–ipipaddsstobind-p,–portporttobind,defaultis-u,–userstartprocessesusingspecifiedlinuxuser-g,–groupstartprocessesusingspecifiedlinuxgroup-r,–rootchangerootdicotryfortheprocesses-h,–helpoutputusageinformationandexit-v,–versionoutputversioninformationandexit

使用示例

xxfpmz:/php5/php-cgi.exe-n5-p

有人问,如何给程序加入参数?这个不难,使用双引号即可,路径要用”/”而不用”\”。例如要指定php.ini的路径,可以用下面例子:

xxfpm“z:/php5/php-cgi.exe-cz:/php5/php.ini”-n5-i17.0.0.1-p

如何维护进程

Windows上使用CateProcess创建进程,使用WaitForSingleObject等待进程结束;Linux上使用fork和execl创建进程,使用waitpid等待进程结束。Linux的版本多了在创建子进程的时候可以设置进程限制,能够以受限用户方式来运行。

当进程管理器被关闭的时候,它所创建的所有子进程也必须被关闭。Windows上使用JobObject这个东西来把子进程与管理器的进程产生关联,感谢iceboy提供的资料!Linux上通过捕捉关闭信号,然后给所有子进程发送SIGTERM来结束子进程。详见源代码!

缺少pthadgc.dll

下载后运行xxfpm.exe,如果出现报错缺少pthadgc.dll,将压缩包里面的pthadgc.dll文件,复制到C:\Windows\System目录,然后命令行运行下面命令注册dll:

gsvrpthadgc.dll

Nginx配置实现启动脚本

需要将下面的目录地址替换成你的路径

#start.batSETphp_home=E:\wnmp\php\SETnginx_home=E:\wnmp\nginx\echoStartingPHPFastCGI...RunHiddenConsoleE:/wnmp/xxfpm/bin/xxfpm.exe"E:/wnmp/php/php-cgi.exe-cE:/wnmp/php/php.ini"-n10-i17.0.0.1-pechoStartingnginx...RunHiddenConsole%nginx_home%nginx.exe-p%nginx_home%

停止脚本

#stop.bat

echooffechoStoppingnginx...taskkill/F/IMnginx.exenulechoStoppingPHPFastCGI...taskkill/F/IMxxfpm.exenulexit

相关链接GitHub


转载请注明:http://www.aierlanlan.com/rzfs/8662.html

  • 上一篇文章:
  •   
  • 下一篇文章: