簡體   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