MediaWikiインストールで大きな(200KB程度)記事を編集しようとしていますが、編集すると次のエラーが発生します。
リクエストエンティティが大きすぎます
リクエストされたリソース
/path/to/my/wiki/index.php
POSTリクエストを含むリクエストデータを許可しない、またはリクエストで提供されるデータの量が容量制限を超える。
Apacheのドキュメントによると、 LimitRequestBody はデフォルトで0(無制限)です。 MediaWiki の2048KBの制限に近いとは思いません。/PHPが私を制限している場所がどこにあるかわかりません。
何ができますか?
更新:私のApacheエラーログはこう言います:
request body exceeds maximum size for SSL buffer
そしてそのすぐ下:
could not buffer message body to allow SSL renegotiation to proceed
可能な解決策が見つかるようです here 。
しかし、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 MB以下のファイルをアップロードするajaxに関連するmodのセキュリティによるものだったため、構成を開いて修正しました。
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 は私の問題を解決しました。