【发布时间】:2011-04-12 17:25:20
【问题描述】:
在我的一个 CakePHP 网站中,我收到了这个错误。
请求实体太大
我不知道是什么问题。我认为我通过表单发布的数据太大了。我在搜索引擎中搜索了这个,发现我必须增加post_max_size。默认情况下,我认为它设置为 8M。
但是不知道如何在 CakePHP 中增加post_max_size 以及怎么做?
谢谢。
【问题讨论】:
标签: php apache .htaccess cakephp post
在我的一个 CakePHP 网站中,我收到了这个错误。
请求实体太大
我不知道是什么问题。我认为我通过表单发布的数据太大了。我在搜索引擎中搜索了这个,发现我必须增加post_max_size。默认情况下,我认为它设置为 8M。
但是不知道如何在 CakePHP 中增加post_max_size 以及怎么做?
谢谢。
【问题讨论】:
标签: php apache .htaccess cakephp post
post_max_size 和 upload_max_filesize 是 PHP.ini 设置。您可以直接在 PHP.ini 中或通过ini_set 设置它们。我不知道这是否也可以使用一些 Cake 内部工具来设置。
但是,错误也可能是由set limit of the RequestBodyLength in Apache 引起的(假设您在 Apache 下运行)。
【讨论】:
HTTP_REQUEST_ENTITY_TOO_LARGE 保释的任何地方都有一个日志声明,因此应该在错误日志中描述究竟是什么冒犯了 Apache 的请求大小。
post_max_size 和upload_max_filesize。
我认为您需要在 PHP 配置文件 php.ini 中进行设置。如果您有 VPS / root 级别的访问权限,只需增加它的大小。如果你不(共享主机),你可以在运行时修改 php ini 参数。注意 ini_set() 在这里不起作用,因为 PHP 设置加载得太晚(文件上传后,PHP 脚本开始执行)。
您需要在 htaccess 文件中包含以下内容(在共享主机上):
php_value post_max_size 104857600
这可能行不通。一些谷歌搜索看起来好像一些共享主机会锁定此设置,使其在 htaccess 中不可覆盖(仅在主服务器配置中)。如果是这种情况,您需要移动主机。
【讨论】:
有时在共享主机上,您可以添加自己的 php.ini 文件 - 只需从任何默认文件中复制相关位(或 google 即可)。
这不是我以前见过的错误 - 正如 Gordon 所说,它可能是 Apache。
不要害怕询问托管支持团队 - 我一直发现他们非常乐于助人(我认为他们一定会感到孤独),而且他们通常会为您更改配置。
这当然不是 CakePHP 的问题。
【讨论】:
我尝试了所有这些答案,唯一对我有用的是调整 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>
【讨论】: