2010-09-15 74 views
8

在我的一个CakePHP站点中,我收到了这个错误。请求实体太大PHP

请求实体太大

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

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

谢谢。

回答

15

post_max_sizeupload_max_filesize是PHP.ini设置。您可以直接使用PHP.ini或通过ini_set来设置它们。我不知道这是否也可以用一些Cake的内部工具来设置。

但是,错误也可能是由set limit of the RequestBodyLength in Apache(假设您在Apache下运行)引起的。

+3

此外,处处阿帕奇捞出用'HTTP_REQUEST_ENTITY_TOO_LARGE',有一个日志语句,所以应该是究竟得罪了Apache的有关请求的大小的说明在错误日志中。 – 2010-09-15 20:50:55

+0

是的。但是在CakePHP中,我将不得不使用ini_set来设置它? – gautamlakum 2010-09-16 08:16:25

+0

@lakum在引导文件中。但是像Travis指出的那样,一些ini值不能在运行时设置。我没有检查这是否适用于'post_max_size'和'upload_max_filesize'。 – Gordon 2010-09-16 08:22:28

1

我认为你需要在PHP配置文件php.ini中设置它。如果你有一个VPS /根级别的访问权限,那就增加这个大小。如果你不(共享主机),你可以在运行时修改php ini参数。请注意,ini_set()在这里不起作用,因为PHP设置的加载太迟(在文件上传后,PHP脚本开始执行)。

你需要在你的htaccess文件如下(在共享主机):

php_value post_max_size 104857600 

这是可能的,这将无法正常工作。一些搜索引擎使得看起来好像一些共享主机会锁定这个设置,使得它在htaccess中不可用(仅在主服务器配置中)。如果是这样的话,你需要移动主机。

0

有时在共享主机上,您可以添加自己的php.ini文件 - 只需将相关位从任何默认文件(或一个谷歌)中复制出来即可。

这不是我以前见过的错误 - 可能正如Gordon所说的,是Apache。

不要害怕问托管支持团队 - 我总是发现他们非常有帮助(我认为他们必须感到孤独),并且他们经常会为您进行配置更改。

它当然不是CakePHP问题。

7

我尝试了所有这些答案,唯一对我有用的是调整SSL缓冲区大小。您可以设置此...

<Directory /my/blah/blah> 
... 
    # Set this to something big big... 
    SSLRenegBufferSize 10486000 
... 
</Directory> 

...然后只需重新启动Apache即可生效。 (发现在:http://forum.joomla.org/viewtopic.php?p=2085574

+0

只需更改为需要SSL。这解决了它。 – zachswain 2016-01-29 18:34:25

5

“413请求实体太大”错误的另一个可能的原因是mod安全性。这是我的原因。

展望网站的Apache的错误日志中说:

的ModSecurity:要求身体没有任何文件的数据长度超过配置的限制(131072)大..与代码(413)

否认我的Ubuntu 14.04的配置文件是在这里,但这个真的取决于系统:

/etc/modsecurity/modsecurity.conf

有是默认值SecRequestBodyNoFilesLimit(也可能是SecRequestBodyInMemoryLimit)。

0

非也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>