WordPressの「アップロードファイルの最大サイズ」に関するメモ

WordPressでアップロード可能なメディアファイル(画像、動画、サウンド、PDF等)には、容量制限がある。
「制限=100MB」といった設定箇所が1カ所なら何も難しいことはないのだが、複数の設定が関係し合い、最終的な容量制限が決まるためややこしい。なのでちょっと整理してみた。

WordPress 3.2.1で確認。

アップロードファイルの最大サイズの基本ルール

アップロードファイルの最大サイズについては、「メディア>新規追加」で表示される「アップロードファイルの最大サイズ」で確認できる。ここで表示される数値は、以下のルールに基づき決定される。

  • 以下の「」をつけた箇所のうち、もっとも小さな値
  • もし下記2-a「サイトのアップロード容量」で、サイト全体の容量制限が設定されている場合の残り容量が、のいずれの値よりも小さい場合は、その残り容量

1. php.ini(Webサーバのphpの設定ファイル)

  • memory_limit = 66M ; Maximum amount of memory a script may consume ※例では66MB。スクリプトが使用するメモリの上限(下2つの設定値以上である必要がある)
  • post_max_size = 65M ; Maximum size of POST data that PHP will accept. ※例では65MB。PHPが受け取るPOSTデータの上限(アップロードするファイルとフォーム等の入力データ全部合わせての数値。下の設定値以上である必要がある)
  • upload_max_filesize = 64M ; Maximum allowed size for uploaded files. ※例では64MB。ファイルアップロードの上限(あくまでファイルだけ)
  • max_execution_time = 300 ; ※単位は秒。タイムアウトにならない程度に適宜。
  • max_input_time = 300 ; ※単位は秒。タイムアウトにならない程度に適宜。

php.iniを編集できない環境の場合、またはPHP全体の設定を変更したくない場合は、WordPressインストールディレクトリ直下の .htaccess に以下を追記することで変更できる。php.iniと.htaccessでは、値の大小に関わらず後者の設定が優先される。php.ini も .htaccess もいじれない環境の場合は諦めてサーバの設定に従うしかない。

2. WordPressの「ネットワーク管理者>設定>アップロード設定」

  • a. サイトのアップロード容量

    ここにチェックを入れて xxx MB とすると、1ブログ当たりの「アップロードファイルの合計」容量を制限できる。外すと無制限。

    →設定は、各サイトのダッシュボードの「現在の状況」に「保存スペース」という表示欄に反映される。「xx%使用中」など出る。欄自体がなければこの設定がOFFになっているということ。

  • b. アップロードファイルの最大サイズ

    上記設定のすぐ下。1個のアプロードファイルの最大容量を設定する。単位はKB。32MBとかにしたいなら 1024KB * 32 = 32768KB などと設定。

    →設定は、各サイトの「メディア>新規追加」の「アップロードファイルの最大サイズ」に反映される。

容量制限を変更した場合の注意

アップロード可能容量を増やした結果、処理のタイムアウトが頻発することを防ぐために、上記1でも少し触れたが、以下2つのパラメータの設定値を忘れずに確認すること。単位は秒。

  • max_execution_time スクリプトがパーサにより強制終了されるまでに許容される最大の 時間を秒単位で指定 →(アップロードとその他の処理を含め)xx秒経過したらタイムアウトで処理中断する
  • max_input_time スクリプトが POST、GET そしてファイルアップロードなどの入力を パースする最大の時間を、秒単位で指定します。→(アップロードだけで)xx秒経過したらタイムアウトで処理中断する


以上です。