我正在使用以下设置:
上传较小的文件时,一切正常。 但是,如果我尝试上传较大的文件(我还没有确定切断点),我得到500错误。
我的apache日志设置为E_ALL&〜E_NOTICE&〜E_STRICT&〜E_DEPRECATED
当第一次发生这种情况时,我检查了日志,发现POST超过了fcgi config中的MaxRequestLen。
我迅速地在php.conf文件和cPanel中的post_virtualHost包含文件中更改了这个。 这阻止了错误消息得到logging,但我仍然收到500错误,混淆,没有任何错误相关的logging任何。
从客户端的angular度来看,该文件似乎上传的罚款,并需要很长的时间,因为它应该(HTML5文件API报告进展正常),并在服务器已经收到完整的文件后,长的脚本执行后,500错误生成。
该文件本身是一个大型的文本文件,其中包含几个base64图像,然后拉开服务器端,使用ImageMajick(通过IMajik php扩展)转换成实际的图像文件,然后复制到不同大小的版本与不同级别的过滤/压缩适用于他们。 整个过程可能需要一段时间。 这可能是问题的一部分吗? 如果是的话,我将如何解决?
我的fcgiconfiguration是最新的,如下所示:
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
我试图用旧的MaxRequestLenreplaceFcgidMaxRequestLen,但仍然没有运气。
任何帮助将不胜感激。
你的剧本简直超时了吗? FcgidBusyTimeout是5分钟 – 当几个脚本同时运行时,这可能是不够的。
为什么你使用fcgi而不是mod_php? 如果你使用ngix作为反向代理和提供静态内容,那么fcgi只是另一个复杂的层面:ngix + apache很好,apache + fcgi很好,ngix + fcgi很好,ngix + apache + fcgi没有意义。