web-dev-qa-db-ja.com

リクエストするエンティティが大きすぎますPHP

私のCakePHPサイトの1つで、このエラーが発生しました。

エンティティが大きすぎるリクエスト

何が問題なのかわかりません。フォームで投稿しているデータが多すぎると思います。これを検索エンジンで検索したところ、post_max_sizeを増やす必要があることがわかりました。デフォルトでは8Mに設定されていると思います。

しかし、CakePHPでpost_max_sizeを増やす方法と、それをどうするかわかりませんか?

ありがとう。

13
gautamlakum

post_max_sizeおよび upload_max_filesize はPHP.iniの設定です。 PHP.iniで直接、または ini_set 。これがいくつかのCake内部のツールでも設定できるかどうかはわかりません。

ただし、エラーは ApacheでのRequestBodyLengthの制限の設定 (Apacheで実行している場合)が原因である可能性もあります。

18
Gordon

私はこれらすべての答えを試しましたが、私のために働いた唯一のことは、SSLバッファーサイズを調整することでした。あなたはこれを設定することができます...

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

...そして、Apacheを再起動して有効にします。 (これは http://forum.joomla.org/viewtopic.php?p=2085574 で見つかりました)

9
duskstriker

「413 request entity too large」エラーのもう1つの考えられる原因は、mod-securityです。それが原因でした。

サイトのApacheエラーログを調べたところ、

ModSecurity:リクエストボディのファイルのデータ長が構成された制限(131072)を超えています。コードで拒否(413)

私のUbuntu 14.04では設定ファイルがここにありますが、これは本当にシステムに依存します:

/etc/modsecurity/modsecurity.conf

SecRequestBodyNoFilesLimitにはデフォルト値があります(そしてSecRequestBodyInMemoryLimitも可能です)。

5

間違いなくCakePHPの問題ではありませんが、ファイルを適切にアップロードするために設定する必要がある2つの設定を次に示します。

vim /etc/php5/php.ini (or wherever the .ini is located)

そして設定:

post_max_size="200M"
upload_max_filesize="200M"

HTTPSを使用している場合の注意が必要な部分です。また、1つの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>
2
Lukas Lukac

PHP設定ファイル、php.iniで設定する必要があると思います。VPS/ルートレベルのアクセス権がある場合は、そのサイズを増やしてください。そうでない場合(共有ホスティング)、実行時にphp iniパラメータを変更できます。PHP設定のロードが遅すぎるため(ファイルのアップロード後、 PHPスクリプトが実行を開始します)。

Htaccessファイル(共有ホスティング上)に以下を含める必要があります。

php_value post_max_size 104857600

これが機能しない可能性があります。一部のグーグルは、一部の共有ホストがこの設定をロックダウンするように見せかけ、htaccessで(メインサーバーの設定のみで)上書きできないようにしました。その場合は、ホストを移動する必要があります。

1
Travis Leleu

共有ホスティングでは、独自のphp.iniファイルを追加できる場合があります。デフォルトのファイル(またはgoogleのいずれか)から関連するビットをコピーするだけです。

これは私が以前に見たエラーではありません-ゴードンが言うように、それはApacheかもしれません。

ホスティングサポートチームに質問することを恐れないでください。私は常に彼らが非常に役立つと思っていました(私は彼らが孤独になる必要があると思います)。

確かにCakePHPの問題ではありません。

0
Leo