WordPressのアップロード上限を引き上げる5つの方法
WordPressでメディアファイルをアップロードしようとしたとき、「上限を超えています」というエラーに遭遇したことはありませんか? WordPressのデフォルトのアップロード上限はサーバー環境によって異なりますが、多くの場合2MB〜64MBに設定されています。この記事では、アップロード上限を引き上げる5つの方法をコード例付きで解説します。
注意:設定変更前に必ずバックアップを取得してください。また、共有ホスティングでは一部の方法が使えない場合があります。
現在の上限を確認する
まず、現在の設定を確認しましょう。WordPress管理画面の「メディア」→「新しいメディアファイルを追加」ページに、現在のアップロード上限が表示されています。また、「ツール」→「サイトヘルス」→「情報」→「サーバー」セクションでも、upload_max_filesize と post_max_size の値を確認できます。
方法1:wp-config.php で設定
最も手軽な方法です。WordPress のルートディレクトリにある wp-config.php に以下の行を追加します。
// wp-config.php に追加(「編集が必要なのはここまでです」の行の上に記述)
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '64M');
@ini_set('max_execution_time', '300');
@ini_set('max_input_time', '300');
この方法は PHP の ini_set() を利用するため、サーバーの設定によっては反映されない場合があります。特に、php.ini でこれらの値が固定されている環境では効果がありません。
方法2:.htaccess で設定
Apache サーバーを使用している場合、.htaccess ファイルで PHP の設定を上書きできます。WordPress のルートディレクトリにある .htaccess に以下を追加します。
# .htaccess に追加
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
php_value memory_limit 256M
Nginx サーバーの場合は .htaccess が使えないため、サーバー設定ファイルで対応する必要があります。
# Nginx の設定(/etc/nginx/conf.d/ 配下)
client_max_body_size 64m;
方法3:php.ini で設定
サーバーの PHP 設定ファイルを直接編集できる場合、最も確実な方法です。php.ini(または .user.ini)に以下を記述します。
; php.ini に追記
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
memory_limit = 256M
共有ホスティングでは php.ini を直接編集できないことがあります。その場合、WordPress のルートディレクトリに .user.ini を作成して同じ内容を記述すると反映される場合があります。
ポイント:post_max_size は upload_max_filesize より大きい値に設定してください。post_max_size はフォームデータ全体の上限であり、ファイル本体に加えてフォームフィールドやオーバーヘッドも含まれます。
方法4:functions.php で設定
テーマの functions.php にフィルターを追加する方法です。テーマを更新すると設定が消えるため、子テーマまたはカスタムプラグインでの実装を推奨します。
// functions.php または カスタムプラグインに追加
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '64M');
// WordPress のアップロードサイズフィルター
add_filter('upload_size_limit', function($size) {
return 64 * 1024 * 1024; // 64 MiB
});
// マルチサイトの場合
add_filter('upload_size_limit', function($size) {
return 64 * 1024 * 1024;
}, 20);
方法5:ホスティングパネルで設定
多くのレンタルサーバーやホスティングサービスでは、管理パネル(cPanel、Plesk、ConoHa、エックスサーバーなど)から PHP の設定を変更できます。
- ホスティングの管理パネルにログイン
- PHP設定、またはphp.ini設定のメニューを探す
upload_max_filesizeとpost_max_sizeの値を変更- 設定を保存し、必要に応じてPHPを再起動
この方法が最も確実で、サーバーレベルで設定が適用されるため、他の方法で上書きされる心配がありません。
設定が反映されないときの確認ポイント
- Webサーバー(Apache/Nginx)を再起動したか
- PHP-FPM を使っている場合、PHP-FPM も再起動したか
- CDN やリバースプロキシがリクエストサイズを制限していないか
- WordPress のマルチサイトでは、ネットワーク管理画面の設定が優先されることがある
post_max_sizeがupload_max_filesize以上になっているか
設定変更後のテスト
アップロード上限を変更したら、必ず実際のファイルでテストしましょう。DevLab では各サイズのテストファイルを提供しています。
- WordPress アップロード上限リファレンス — 各ホスティング環境のデフォルト上限一覧
- 境界値テスト用ファイル — 上限ちょうどのサイズでテスト
- 画像テストファイル — 実際のメディアアップロードで検証
まとめ
WordPressのアップロード上限を引き上げる方法は複数ありますが、サーバー環境によって使える方法が異なります。まずはホスティングパネルでの設定を試み、それが使えない場合は .htaccess や php.ini で対応しましょう。設定変更後は、DevLab のテストファイルを使って実際にアップロードが成功することを確認してください。