Запросить объект слишком большой PHP - PullRequest
11 голосов
/ 15 сентября 2010

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

Запрос на объект слишком большой

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

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

Спасибо.

Ответы [ 6 ]

16 голосов
/ 15 сентября 2010

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

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

8 голосов
/ 15 июня 2012

Я попробовал все эти ответы, и единственное, что мне помогло, - это настроить размер буфера SSL. Вы можете установить это с помощью ...

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

... а затем просто перезапустите Apache для вступления в силу. (Нашел по адресу: http://forum.joomla.org/viewtopic.php?p=2085574)

5 голосов
/ 18 мая 2016

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

Просмотр журнала ошибок Apache сайта сказал:

ModSecurity: тело запроса, длина данных в файлах которого не превышает настроенный предел (131072) ..Запретить с кодом (413)

На моем Ubuntu 14.04 файл конфигурации находится здесь, но это действительно зависит от системы:

/ etc / modsecurity / modsecurity.conf

Существует значение по умолчанию для SecRequestBodyNoFilesLimit (и, возможно, SecRequestBodyInMemoryLimit ).

2 голосов
/ 24 октября 2016

Определенно не проблема 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>
1 голос
/ 15 сентября 2010

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

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

php_value post_max_size 104857600

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

0 голосов
/ 15 сентября 2010

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

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

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

Конечно, это не проблема CakePHP.

...