[英]Request Entity Too Large PHP
在我的一个CakePHP网站中,我收到了这个错误。
请求的实体太大
我不知道是什么问题。 我认为我通过表单发布的数据太大了。 我在搜索引擎中搜索了这个,得到了我必须增加post_max_size
。 默认情况下,我认为它设置为8M。
但是不知道如何在CakePHP中增加post_max_size
以及该怎么做呢?
谢谢。
post_max_size
和upload_max_filesize
是php.ini设置。 您可以直接在PHP.ini中或通过ini_set
设置它们。 我不知道是否可以使用一些Cake内部工具来设置它。
但是,错误也可能是由Apache中的RequestBodyLength的设置限制引起的(假设您在Apache下运行)。
我尝试了所有这些答案,唯一对我有用的是调整SSL缓冲区大小。 你可以通过......设置它
<Directory /my/blah/blah>
...
# Set this to something big big...
SSLRenegBufferSize 10486000
...
</Directory>
...然后只需重启Apache即可生效。 (发现于: http : //forum.joomla.org/viewtopic.php?p = 2085574 )
“413请求实体太大”错误的另一个可能原因是mod-security。 这是我的原因。
查看该站点的Apache错误日志说:
ModSecurity:请求正文没有文件数据长度大于配置的限制(131072)..拒绝代码(413)
在我的Ubuntu 14.04上配置文件在这里,但这实际上取决于系统:
/etc/modsecurity/modsecurity.conf
SecRequestBodyNoFilesLimit (也可能是SecRequestBodyInMemoryLimit )有默认值。
绝对不是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>
我想你需要在PHP配置文件php.ini中设置它。 如果您具有VPS /根级别访问权限,则只需增加其大小。 如果不这样做(共享主机),则可以在运行时修改php ini参数。 请注意,ini_set()在这里不起作用,因为PHP设置加载太晚(文件上传后,PHP脚本开始执行)。
您需要在htaccess文件中包含以下内容(在共享主机上):
php_value post_max_size 104857600
这可能不起作用。 一些谷歌搜索似乎一些共享主机将锁定此设置,使其在htaccess(仅在主服务器配置中)不能超载。 如果是这种情况,您需要移动主机。
有时在共享主机上,您可以添加自己的php.ini文件 - 只需从任何默认文件中复制相关位(或谷歌一个)。
这不是我以前见过的错误 - 正如戈登所说,可能是阿帕奇。
不要害怕询问托管支持团队 - 我总是发现它们非常有用(我认为它们必须变得孤独),并且通常它们会为您进行配置更改。
它肯定不是CakePHP的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.