登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: php-cgi 自己会生成子进程[windows下无效]     [回主站]     [分站链接]
标题
php-cgi 自己会生成子进程[windows下无效]
clq
浏览(0) + 2010-05-10 10:14:36 发表 编辑

关键字:

php-cgi 自己会生成子进程[windows下无效]

来自
http://www.phpvim.net/php/installing-nginx-with-php5-on-windows.html
不过其对 fastcgi 模式的 php 在 windows 下运行不好的说法我是不认同的,因为我已经在实际使用中用搭配 apache 的模式取得过很好的效果了.
--------------------------------------------------

Verdana Mu
Dec 10th, 2009 at 18:47

CARSON :

wlong :
我发现用这种方式运行php-cgi.exe 很不稳定, 稍微有几个访问php-cgi进程就会崩溃,后来我一下开启50个php-cgi进程,但是也会陆续崩溃。请问有什么办法解决?

对.我也是碰到这样的问题..没办法…我就开启了10个php-cgi来监听不同的( 9000-9009)端口,然后用定时十分钟重启 nginx php-cgi, 因为是直接杀进程,然后启动,所以这样的重启用户根本就感觉不出来, 貌似这两天web好些了..

但我看到别人的教程说是监听 127.0.0.1:9000 就一个进程..windows 下我不知道如何多个进程来监听一个9000端口..恳请高手指教!

FastCGI PHP 有两个关键环境变量参数用来调节性能。

PHP_FCGI_CHILDREN,默认值是 0
第一个参数控制了 php-cgi 主进程所能 spawn 的子进程数目。 0 的情况下,php-cgi 不会产生子进程,由主进程负责处理请求。当 > 0 时,php-cgi 生成了对应的数目的子进程处理请求,而主进程则只负责管理子进程(*nix 系统中你会看到这个进程占用的内存很小)。当然这是在 *nix 系统的情况下,Windows 中,这个参数无效, 看一下 PHP 源码 sapi/cgi/cgi_main.c 可以确认这一点。

PHP_FCGI_MAX_REQUESTS,默认值 500
php-cgi 进程处理的最大请求数,当处理的请求 >= 这个数字时,php-cgi 便会自我销毁,*nix 系统中 PHP_FCGI_CHILDREN > 0 的情况下便会重生一个新的 php-cgi 进程。Windows 中第一个参数无效,所以只有一个主进程,因此自毁以后 PHP 也就挂了,而这个参数又是必须的,设置过大的话,没什么意义,PHP 中有不少函数都存在内存泄露的问题,如果无限制处理请求,php-cgi 的性能只会越来越弱直至崩溃。

Windows 系统实在没什么好的方法,可以在 Cygwin 下面自己编译一个带 php-fpm 的 PHP,以前只能用 patch 的方式给 PHP 打 fpm 的补丁,5.3.2+ 已经内置了…
或者用 Lighttpd 的 spawn-cgi,似乎有 Win32 版本。

生产环境下,如果必须是 Win32 系统,建议还是转到 IIS7 + PHP FASTCGI,Nginx 只能拿到玩玩而已。




总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1