2010-09-15 105 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>