На одном из моих сайтов CakePHP я получил эту ошибку.
Запросить объект слишком большой
Я не знаю, в чем проблема. Я думаю, что данные, которые я отправляю через форму, слишком велики. Я искал это в поисковой системе и получил, что мне придется увеличить post_max_size
. По умолчанию я думаю, что он установлен на 8M.
Но не знаете, как увеличить post_max_size
в CakePHP и что с ним делать?
Благодарю.
post_max_size
и upload_max_filesize
– это настройки PHP.ini. Вы можете установить их либо непосредственно в PHP.ini, либо через ini_set
. Я не знаю, можно ли это установить с некоторыми инструментами Cake.
Однако ошибка также может быть вызвана установленным пределом RequestBodyLength в Apache (при условии, что вы работаете под 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 request entity» является mod-security. Это и послужило причиной для меня.
Заглядывая в журнал ошибок Apache, он сказал:
ModSecurity: тело запроса. Длина данных для файлов больше, чем установленный предел (131072). Запретить код (413)
На моем Ubuntu 14.04 конфигурационный файл находится здесь, но это действительно зависит от системы:
/etc/modsecurity/modsecurity.conf
Существует значение по умолчанию для SecRequestBodyNoFilesLimit (и, возможно, также SecRequestBodyInMemoryLimit ).
Я думаю, вам нужно установить это в файле конфигурации PHP, php.ini. Если у вас есть доступ к VPS / корневому уровню, просто увеличьте его размер. Если вы не используете (общий хостинг), вы можете изменить параметры php ini во время выполнения. Обратите внимание, что ini_set () не будет работать здесь, потому что параметры PHP загружаются слишком поздно (после того, как файл был загружен, скрипт PHP начинает выполнение).
Вам необходимо включить следующее в ваш файл htaccess (на общем хостинге):
php_value post_max_size 104857600
Возможно, это не сработает. Некоторые поисковые запросы заставляли казаться, что некоторые общие хосты блокируют эту настройку, делая ее не перегруженной в htaccess (только в конфигурации главного сервера). Если это так, вам нужно переместить хосты.
Иногда на общем хостинге вы можете добавить свой собственный файл php.ini – просто скопируйте соответствующие биты из любого файла по умолчанию (или Google для одного).
Это не ошибка, которую я видел раньше – это может быть, как говорит Гордон, быть Apache.
Не бойтесь спросить команду поддержки хостинга – я всегда считал, что они очень полезны (я думаю, они должны быть одиноки), и часто они будут делать изменения конфигурации для вас.
Это, конечно, не проблема CakePHP.
Определенно, не проблема 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>