请求实体太大的PHP

时间:2010-09-15 14:25:58

标签: php apache .htaccess cakephp post

在我的一个CakePHP网站上,我收到了这个错误。

请求实体太大

我不知道是什么问题。我认为我通过表单发布的数据太大了。我在搜索引擎中搜索了这个,得到了我必须增加post_max_size。默认情况下,我认为它设置为8M。

但是不知道如何在CakePHP中增加post_max_size以及该怎么做呢?

感谢。

6 个答案:

答案 0 :(得分:16)

post_max_sizeupload_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问题。