WordPress「このサイトのアップロードサイズ上限を超えています」の対応方法

WordPress の「このサイトのアップロードサイズ上限を超えています」の対処方法を説明します。メディアアップロードで失敗する原因の一つなので、WordPressを設置したら最初にこの設定もしておきましょう!

このサイトのアップロードサイズ上限を超えています。

WordPress の標準アップロードサイズの上限は、2MB までです。これは、PHP側の設定により、2MBまでと決められているからです。その設定を変更してあげることで、アップロードの上限を好きなだけ上げることが出来ます。

アップロードサイズの上限を上げる方法は2つ

php.ini」 の設定を変える。
.htaccess」 で設定をする。(初心者向け)

アップロードサイズの上限を上げるには、下記の3項目の値を変更します。

upload_max_filesize = 2M
アップロードされるファイルの最大サイズ
post_max_size = 8M
POSTデータに許可される最大サイズ
memory_limit = 128M
PHPプログラムが確保できる最大サイズ
memory_limit(128MB) > post_max_size(8MB) > upload_max_filesize(2MB)

※ アップロードサイズを、128MBギリギリに設定にする場合、「memory_limit」は128MBなので変更する必要がないように思えますが、memory_limit は、WordPressのプログラムを動かす為のメモリも含まれるので、「アップロードサイズ + α」として設定を変更してください。

アップロードサイズの上限を10MBにする例で説明します。

php.ini の値を変更してアップロードサイズを上げる

# vi/etc/php5/fpm/php.ini を修正します。
※サーバーの環境によって、php.iniの場所が異なります。

// アップロードされるファイルの最大サイズ
upload_max_filesize = 2M → upload_max_filesize = 10M

// POSTデータに許可される最大サイズ
post_max_size = 8M → post_max_size = 10M

// PHPプログラムが確保できる最大サイズ
memory_limit = 128M → 変更不要。

.htaccess でアップロードサイズを上げる(初心者向け)

.htaccess が使えない場合は、php.iniの値を変更してください。

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


# END WordPress

// 下記の2行を追加します。
php_value upload_max_filesize 10M
php_value post_max_size 10M

アップロードがタイムアウトする場合

アップロードのタイムアウト初期値は「30秒」です。アップロードサイズが大きい場合、下記の値を変更・追加すればタイムアウトの時間を延長できます。「0」を設定すると無制限になります。

// php.ini の場合(変更)
max_execution_time = 30
max_input_time = 60


// .htaccess の場合(追加)
php_value max_execution_time 30
php_value max_input_time 60
max_execution_time = 30
スクリプトがパーサにより強制終了されるまでに許容される最大の時間
max_input_time = 60
スクリプトが POST、GET などの入力を パースする最大の時間を、秒単位で指定します。 これは、サーバー側で PHP が起動してからスクリプトの実行を開始するまでの時間です。

これで、WordPress「このサイトのアップロードサイズ上限を超えています」の対応が出来たと思います。

読んで頂いて有り難うございます!