Apache 设置成mod_fcgid方式,运行超时

xuejiazhi 2014-07-09 06:30:44
Apache 设置成mod_fcgid方式,解析一个很大的XML数据,Apache需要很长时间去响应,无论我把设置中的时间调成多大,过5分钟就超时了,即使程序中设置set_time_limit()也没有效果。当超时后,web页面会显示服务器错误,但是通过后台监控,发现程序(php-cgi.exe)其实还在运行,并可以执行完。
设置如下:
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi .php
FcgidInitialEnv PHPRC "E:/PHP"
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 5
FcgidIOTimeout 1000
FcgidIdleTimeout 1000
FcgidConnectTimeout 1000
FcgidBusyTimeout 1000
FcgidProcessLifeTime 1000

FcgidMaxRequestLen 1675864000
FcgidWrapper "E:/uonno/PHP/php-cgi.exe"
AddType application/x-httpd-php .php
</IfModule>

该设的都设了,
Timeout 300 这个设置也改成了
Timeout 1000
但是运行程序,5分钟后还是

连接超时

127.0.0.1 的服务器响应时间过长。

此站点暂时不可用或者太忙。请稍后再试。
如果您无法载入任何页面,请检查您计算机的网络连接。
如果您的计算机或网络受到防火墙或者代理服务器的保护,请确认 Firefox 已被授权访问网络。
...全文
836 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuejiazhi 2014-07-15
  • 打赏
  • 举报
回复
结贴吧,这个好像是和浏览器有关。
xuejiazhi 2014-07-14
  • 打赏
  • 举报
回复
引用 4 楼 changjay 的回复:
phpinfo() 看看 mod_fcgid 的Timeout 时间各显示多少?你的Apache版本是多少?老版本设置里不要加 Fcgid 开头,直接 ConnectTimeout 1000 <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php InitialEnv PHPRC "E:/PHP" InitialEnv PHP_FCGI_MAX_REQUESTS 1000 MaxRequestsPerProcess 1000 MaxProcesses 5 IOTimeout 1000 IdleTimeout 1000 ConnectTimeout 1000 BusyTimeout 1000 ProcessLifeTime 1000 MaxRequestLen 1675864000 Wrapper "E:/uonno/PHP/php-cgi.exe" AddType application/x-httpd-php .php </IfModule>
谢谢,不是Apache版本的原因,其实前台页面显示超时了,但是后台php-cgi.exe还是在运行,并且能正确的执行完。
xuejiazhi 2014-07-14
  • 打赏
  • 举报
回复
引用 5 楼 xuejiazhi 的回复:
[quote=引用 4 楼 changjay 的回复:] phpinfo() 看看 mod_fcgid 的Timeout 时间各显示多少?你的Apache版本是多少?老版本设置里不要加 Fcgid 开头,直接 ConnectTimeout 1000 <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php InitialEnv PHPRC "E:/PHP" InitialEnv PHP_FCGI_MAX_REQUESTS 1000 MaxRequestsPerProcess 1000 MaxProcesses 5 IOTimeout 1000 IdleTimeout 1000 ConnectTimeout 1000 BusyTimeout 1000 ProcessLifeTime 1000 MaxRequestLen 1675864000 Wrapper "E:/uonno/PHP/php-cgi.exe" AddType application/x-httpd-php .php </IfModule>
谢谢,不是Apache版本的原因,其实前台页面显示超时了,但是后台php-cgi.exe还是在运行,并且能正确的执行完。[/quote] 我测试都是有FireFox测试的,发现FF五分钟出现这种问题,IE与谷歌浏览器不会。
  • 打赏
  • 举报
回复
phpinfo() 看看 mod_fcgid 的Timeout 时间各显示多少?你的Apache版本是多少?老版本设置里不要加 Fcgid 开头,直接 ConnectTimeout 1000 <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php InitialEnv PHPRC "E:/PHP" InitialEnv PHP_FCGI_MAX_REQUESTS 1000 MaxRequestsPerProcess 1000 MaxProcesses 5 IOTimeout 1000 IdleTimeout 1000 ConnectTimeout 1000 BusyTimeout 1000 ProcessLifeTime 1000 MaxRequestLen 1675864000 Wrapper "E:/uonno/PHP/php-cgi.exe" AddType application/x-httpd-php .php </IfModule>
海兰 2014-07-11
  • 打赏
  • 举报
回复
xuejiazhi 2014-07-10
  • 打赏
  • 举报
回复
引用 1 楼 changjay 的回复:
参考一下 http://serverfault.com/questions/382261/mod-fcgid-read-data-timeout-errors 的设置 机器内存多大?XML文件又多大?是PHP吗?如果是的,set_time_limit(1000); ini_set("memory_limit","2048M");
你好,内存4G够用,XML文件23M,是PHP,设置成set_time_limit(0)都无效;memory_limit也设置得很大。
  • 打赏
  • 举报
回复
参考一下 http://serverfault.com/questions/382261/mod-fcgid-read-data-timeout-errors 的设置 机器内存多大?XML文件又多大?是PHP吗?如果是的,set_time_limit(1000); ini_set("memory_limit","2048M");

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧