2

我有一个 php 脚本,它从客户端传递的 url 加载网页,解析它并将结果发送到客户端。

在我的开发环境(安装了 windows 7 和 wamp 的笔记本电脑)上运行时,它运行良好,但是当上传到服务器(windows server 2008 R2 + php 5.3.6 + apache 2.2 + mod_fcgid 2.3.9)时,运行结果为“内部服务器错误”。

我可以看到 FastCGI 进程、处理请求、内存消耗如何上升到它被挂起并意外终止的程度。

apache 错误日志显示以下 2 条消息:

(OS 109)The pipe has been ended.  : mod_fcgid: get overlap result error, referer: http://some_domain.com/NL-Analysis/getDomainResults

(OS 109)The pipe has been ended.  : mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: http://some_domain.com/NL-Analysis/getDomainResults

我尝试根据错误日志在互联网上寻找解决方案,我发现的大部分内容都指向 mod_fcgid 配置。我尝试更改一些 mod_fcgid 指令和限制,但没有帮助。

目前 mod_fcgid 在 httpd.conf 中使用这些参数进行配置:

FcgidInitialEnv PHP_FCGI_MAX_REQUESTS=1000
FcgidIOTimeout 7200
FcgidConnectTimeout 7200
FcgidBusyScanInterval 7200
FcgidBusyTimeout 7200
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 80
FcgidIdleTimeout 7200
FcgidMaxRequestInMem 100000000000
FcgidProcessLifeTime 7200

我很乐意提供任何其他意见。

有人能想出一种方法来阻止 FastCGI 进程终止吗?

谢谢,阿隆。

4

0 回答 0