繁体   English   中英

请求实体太大的PHP

[英]Request Entity Too Large PHP

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

请求的实体太大

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

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

谢谢。

post_max_sizeupload_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM