在我的一个CakePHP网站上,我收到了这个错误。
请求实体太大
我不知道是什么问题。我认为我通过表单发布的数据太大了。我在搜索引擎中搜索了这个,得到了我必须增加post_max_size
。默认情况下,我认为它设置为8M。
但是不知道如何在CakePHP中增加post_max_size
以及该怎么做呢?
感谢。
答案 0 :(得分:16)
post_max_size
和upload_max_filesize
是PHP.ini设置。您可以直接在PHP.ini中或通过ini_set
设置它们。我不知道是否可以使用一些Cake内部工具来设置它。
但是,错误也可能由set limit of the RequestBodyLength in Apache引起(假设您在Apache下运行)。
答案 1 :(得分:8)
我尝试了所有这些答案,唯一对我有用的是调整SSL缓冲区大小。你可以通过......设置它。
<Directory /my/blah/blah>
...
# Set this to something big big...
SSLRenegBufferSize 10486000
...
</Directory>
...然后只需重启Apache即可生效。 (发现于:http://forum.joomla.org/viewtopic.php?p=2085574)
答案 2 :(得分:5)
&#34; 413请求实体太大的另一个可能原因&#34;错误是mod-security。这就是我的原因。
查看该网站的Apache错误日志说:
ModSecurity:请求正文没有文件数据长度大于配置的限制(131072)..拒绝代码(413)
在我的Ubuntu 14.04上配置文件在这里,但这实际上取决于系统:
/etc/modsecurity/modsecurity.conf
SecRequestBodyNoFilesLimit (可能还有 SecRequestBodyInMemoryLimit )的默认值。
答案 3 :(得分:1)
我认为您需要在PHP配置文件php.ini中设置它。如果您具有VPS /根级别访问权限,则只需增加其大小。如果不这样做(共享主机),则可以在运行时修改php ini参数。请注意,ini_set()在这里不起作用,因为PHP设置加载太晚(文件上传后,PHP脚本开始执行)。
您需要在htaccess文件中包含以下内容(在共享主机上):
php_value post_max_size 104857600
这可能不起作用。一些谷歌搜索似乎一些共享主机将锁定此设置,使其在htaccess(仅在主服务器配置中)不能超载。如果是这种情况,您需要移动主机。
答案 4 :(得分:1)
绝对不是CakePHP问题,但以下是为正确上传文件需要设置的两个设置:
vim /etc/php5/php.ini (or wherever the .ini is located)
并设置:
post_max_size="200M"
upload_max_filesize="200M"
现在是棘手的部分,以防你使用HTTPS!您还需要配置一个SSL。
vim /etc/apache2/sites-available/<whatever>-443.conf
并设置SSLRenegBufferSize
<Directory /appdata/www/<whatever>/web>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
SSLRenegBufferSize 201048600
</Directory>
答案 5 :(得分:0)
有时在共享主机上你可以添加你自己的php.ini文件 - 只需从任何默认文件(或google for one)中复制相关位。
这不是我以前见过的错误 - 正如戈登所说,可能是阿帕奇。
不要害怕询问托管支持团队 - 我总是发现他们非常有帮助(我认为他们必须感到孤独),而且他们经常会为你做配置更改。
肯定不是CakePHP问题。