2010-09-15 2 views
8

На одном из моих сайтов CakePHP я получил эту ошибку.Request Entity Too Large PHP

Request Entity Too Large

Я не знаю, что это проблема. Я думаю, что данные, которые я отправляю через форму, слишком велики. Я искал это в поисковой системе и получил, что мне придется увеличить post_max_size. По умолчанию я думаю, что он установлен на 8M.

Но не знаете, как увеличить post_max_size в CakePHP и что с этим делать?

Спасибо.

ответ

15

post_max_size и upload_max_filesize - это настройки PHP.ini. Вы можете установить их либо непосредственно в PHP.ini, либо через ini_set. Я не знаю, можно ли это установить с некоторыми инструментами Cake.

Однако ошибка также может быть вызвана set limit of the RequestBodyLength in Apache (при условии, что вы работаете под Apache).

+3

Кроме того, во всем мире, что Apache поручительств с 'HTTP_REQUEST_ENTITY_TOO_LARGE', есть журнал заявление, так что должно быть описание того, что именно обиделись Apache о размере запроса в журнале ошибок. –

+0

Да. Но в CakePHP, в каком файле я должен установить его с помощью ini_set? – gautamlakum

+0

@lakum В файле начальной загрузки. Но, как указывает Travis ниже, некоторые значения ini не могут быть установлены во время выполнения. Я не проверял, применяется ли это к 'post_max_size' и' upload_max_filesize'. – Gordon

1

Я думаю, вам нужно установить это в файле конфигурации PHP, php.ini. Если у вас есть доступ к VPS/корневому уровню, просто увеличьте его размер. Если вы не используете (общий хостинг), вы можете изменить параметры php ini во время выполнения. Обратите внимание, что ini_set() не будет работать здесь, потому что параметры PHP загружаются слишком поздно (после того, как файл был загружен, скрипт PHP начинает выполнение).

Вам необходимо включить следующее в файл Htaccess (на виртуальный хостинг):

php_value post_max_size 104857600 

Возможно, это не будет работать. Некоторые поисковые запросы заставляли казаться, что некоторые общие хосты блокируют эту настройку, делая ее не перегруженной в htaccess (только в конфигурации главного сервера). Если это так, вам нужно переместить хосты.

0

Иногда на общедоступном хостинге вы можете добавить свой собственный файл php.ini - просто скопируйте соответствующие биты из любого файла по умолчанию (или Google для одного).

Это не ошибка, которую я видел раньше - это может быть, как говорит Гордон, быть Апачем.

Не бойтесь спросить команду поддержки хостинга - я всегда находил их очень полезными (я думаю, они должны быть одинокими), и часто они будут изменять конфигурацию для вас.

Это, безусловно, не проблема 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

5

Другой возможной причиной слишком большой ошибки «413 запрос сущности» является mod-security. Это и послужило причиной для меня.

Глядя в журнале ошибок 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>