从SO或SilverStripe论坛上的问题来看,我面临一个非常普遍的情况:文件上传失败。
然而,我的情况似乎源于我尚未在网上遇到的一个问题;从阅读其他问题和许多博客文章或论坛帖子,我已经排除了:
upload_max_filesize
和post_max_size
(都设置为8M)LimitRequestBody
(默认值为0,表示“无限制”)我已经将这些排除在外有很多原因,但是这张图片显示了上传有时正在进行的三个连续上传的示例:
我在SilverStripe论坛上也有started a thread来解决这个问题,但我没有希望能在那里解决问题。
我在Upload
,UploadField
和File
类中设置了断点,并在几小时内完成了代码,但没有成功找出错误原因。
到目前为止,我的发现是128 kiB以上的任何文件都会导致内部服务器错误。低于此大小阈值的任何文件都会按预期上传。
发生此错误时,所有日志(Apache,PHP,SilverStripe)都是完全静音的。
许可问题似乎不太可能,因为:
web1
)apache:apache
apache
添加到用户组,以便groups web1
为我提供web1 : client1 sshusers
,groups apache
为我提供apache : apache ispapps ispconfig client1
assets
)归web1:client1
所有并拥有权限775 upload_tmp_dir
)归web1:client1
所有,权限为775。我相信我所看到的是以某种方式获取有关上传失败的位置和原因的信息。是否可以将Apache的loglevel设置为“debug”或“trace”?
注意:“类似问题”中的条目导致我this answer,其中提示SSLRenegBufferSize
默认为128 kiB。不幸的是,无论协议是HTTPS还是HTTP都没有影响:问题就出现了。
[编辑]我后来将LogLevel
指令设置为trace
,但我在服务器日志中仍然没有关于此错误的消息。
答案 0 :(得分:0)
快速谷歌搜索带我到以下文章:
建议检查FcgidMaxRequestLen
设定值。
这并没有回答如何正确调试,但有助于解决原始问题。