【发布时间】:2015-05-27 07:24:41
【问题描述】:
我正在尝试通过 AJAX 上传文件。正在成功上传约 10MB 的小文件。
但是,当我尝试上传较大的文件时,它会失败并显示以下消息:
内部服务器错误
服务器遇到内部错误或配置错误,并且 无法完成您的请求。
请联系服务器管理员 webmaster@.com 并告知 错误发生的时间,以及您可能做过的任何事情 这可能是导致错误的原因。
有关此错误的更多信息可能在服务器错误中可用 记录。
此外,在执行过程中遇到 500 Internal Server Error 错误 尝试使用 ErrorDocument 来处理请求。
我在 Dreamhost 上使用 Laravel 5。
我到处都放了调试信息,但似乎我的 PHP 代码根本没有被执行。另外,error.log 中也没有任何信息。
我检查了php.ini 的以下设置:
max_execution_time 30
max_file_uploads 20
post_max_size 500M
upload_max_filesize 500M
最初,我将/tmp folder 安装在一个分区大小为100MB 的地方。当时error.log说"modsecurity: input filter failed writing 8192 bytes to temporary file"
所以我将/tmp文件夹的位置更改为我的主文件夹,以消除大小限制,但不起作用。
这是当前的行为: 文件上传显示 100%。 然后请求等待一段时间而不会导致日志。 一段时间后,返回上述错误信息。
让我知道需要哪些进一步的信息。
非常感谢!
【问题讨论】:
-
500 Internal Server表示您尝试运行的页面中有 php 错误 -
我明白这一点。这就是为什么我包含了实际的 error.log 消息 :) 我从 Laravel 管理 404 等。我无法调试的是文件上传。
-
您尝试上传的 tmp/ 目录是否已满?我认为 ModSecure 对 tmp 目录的文件大小限制为 128MB,以防止文件系统被填满。
-
我已经完全清空了。
-
要更新,error.log 现在显示错误!我不知道它什么时候开始显示错误。最近的错误是:
ModSecurity: Input filter: Failed writing 1452 bytes to temporary file (rc 200)
标签: php ajax apache laravel-5 fastcgi