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秒経過したらタイムアウトで処理中断する
以上です。