Назад | Перейти на главную страницу

Ограничение POST PHP / Apache?

Я пытаюсь редактировать большие (200 КБ или около того) статьи в моей установке MediaWiki, но при этом возникает следующая ошибка:

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

Запрошенный ресурс

/path/to/my/wiki/index.php

не позволяет запрашивать данные с запросами POST, или объем данных, предоставленных в запросе, превышает предел емкости.

Согласно документам Apache, LimitRequestBody по умолчанию 0 (неограниченно). Я не думаю, что я рядом с MediaWiki лимит 2048КБ. Я не могу найти, где / если PHP меня ограничивает.

Что дает?

Обновить: В моих журналах ошибок Apache говорится:

request body exceeds maximum size for SSL buffer

И прямо под этим:

could not buffer message body to allow SSL renegotiation to proceed

Похоже, можно найти возможное решение Вот.

Но мне нужно перекомпилировать mod_ssl. Похоже, что ближе к концу того отчета об ошибке они говорили о добавлении директивы для этого вместо перекомпиляции. Кто-нибудь знает, случилось ли это? Кроме того, мне просто нужно перекомпилировать mod_ssl для этого исправления? И если да, как мне использовать мою скомпилированную версию вместо стандартной версии Ubuntu?

Почему бы вам дважды не проверить размер POST-запроса. Например, вы можете использовать netcat для прослушивания 8080.

netcat -l -p 8080

Затем перенаправьте свой браузер на использование прокси-сервера на порту 8080 непосредственно перед отправкой формы. У вас должно получиться что-то вроде этого:

POST http://example.com/path/to/my/wiki/index.php HTTP/1.1
Host: example.com
Proxy-Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 217

Самая важная линия - это Content-Length и просто дважды проверьте фактическую длину содержимого. Это, по крайней мере, поможет вам определить, где дела идут не так. Вы, по крайней мере, будете иметь представление о реальном размере контента.

Затем убедитесь, что вы подключаетесь к Apache напрямую, а не через прокси или обратный прокси. Некоторые обратные прокси-серверы устанавливают ограничение на максимальный размер запроса в качестве меры безопасности. Итак, вы можете проверить это, а также свои журналы Apache, чтобы убедиться, что больше ничего не происходит.

У меня была такая же ошибка, и это была из-за безопасности мода, связанного с загрузкой файлов размером 500 МБ и меньше, чтобы исправить, я открыл конфигурацию.

sudo vi /etc/httpd/conf.d/mod_security.conf

Изменил это

SecRequestBodyLimit 131072 
SecRequestBodyNoFilesLimit 
SecRequestBodyInMemoryLimit

Кому:

SecRequestBodyLimit 524288000
SecRequestBodyNoFilesLimit 524288000
SecRequestBodyInMemoryLimit 524288000

У меня была ошибка «413 Request Entity Too Large».

https://stackoverflow.com/a/19447688/784542 решил мою проблему.