我使用以下设置:
当上传较小的文件时,一切都很好。然而,如果我试图上传更大的文件(我还没有确定断点),我会得到500个错误。
我的apache日志被设置为E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
当第一次发生这种情况时,我检查了日志,发现在fcgi配置中,POST比MaxRequestLen长。
我立即在我的php.conf文件和post_virtualHost包含文件中从cPanel中更改了这一点。这阻止了错误消息被记录,但我仍然收到500个错误,而且令人困惑的是,没有任何与此相关的错误被记录。
从客户端的角度来看,该文件似乎上传得很好,并且需要很长的时间( html5文件api在整个过程中正确地报告进度),而500个错误是在服务器随后在漫长的脚本执行过程中收到完整文件之后生成的。
该文件本身是一个包含多个base64图像的大型文本文件,这些图像随后被分开服务器端,然后使用ImageMajick (通过IMajik php扩展名)转换为实际的图像文件,然后复制成几个不同大小的版本,并对其应用不同级别的过滤/压缩。整个过程可能需要相当长的时间。这可能是问题的一部分吗?如果是这样的话,我该如何解决呢?
我的fcgi配置如下所示:
MaxRequestsPerProcess 1000
FcgidMaxProcesses 200
FcgidProcessLifeTime 7200
MaxProcessCount 500
FcgidIOTimeout 400
FcgidIdleTimeout 600
FcgidIdleScanInterval 90
FcgidBusyTimeout 300
FcgidBusyScanInterval 80
ErrorScanInterval 3
ZombieScanInterval 3
DefaultMinClassProcessCount 0
DefaultMaxClassProcessCount 3
FcgidMaxRequestLen 1073741824我试过用旧的FcgidMaxRequestLen代替MaxRequestLen,但仍然没有成功。
任何帮助都将不胜感激。
发布于 2013-02-18 23:44:30
您的脚本是否有可能简单地超时?FcgidBusyTimeout是5分钟--也许当几个脚本同时运行时,这是不够的。
为什么使用fcgi而不是mod_php?如果您使用ngix作为反向代理,并且用于服务静态内容,那么fcgi只是另一层复杂性: ngix+apache是好的,apache+fcgi是好的,ngix+fcgi是好的,ngix+apache+fcgi是没有意义的。
https://serverfault.com/questions/480084
复制相似问题