[英]Request Entity Too Large PHP
在我的一個CakePHP網站中,我收到了這個錯誤。
請求的實體太大
我不知道是什么問題。 我認為我通過表單發布的數據太大了。 我在搜索引擎中搜索了這個,得到了我必須增加post_max_size
。 默認情況下,我認為它設置為8M。
但是不知道如何在CakePHP中增加post_max_size
以及該怎么做呢?
謝謝。
post_max_size
和upload_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.