WordPressのアップロード上限を変更する方法
WordPressのメディアアップロード上限を引き上げる5つの方法を解説します。サーバー環境や利用しているレンタルサーバーに応じて、最適な方法をお選びください。
現在のアップロード上限を確認する
WordPress管理画面の「メディア」→「新規追加」画面に「最大アップロードサイズ: ○○MB」と表示されます。また、「サイトヘルス」画面の「情報」タブでもPHPの設定値を確認できます。WordPressのデフォルトでは、PHPの設定に従い2MB〜10MB程度に制限されている場合が多いです。
アップロード上限は以下の3つの設定値のうち最も小さい値で決まります。
upload_max_filesize- 1ファイルあたりの最大サイズpost_max_size- POSTリクエスト全体の最大サイズ(upload_max_filesizeより大きくする必要あり)memory_limit- PHPが使用できるメモリ上限
方法1: wp-config.php を編集する
最も手軽な方法です。WordPressのルートディレクトリにあるwp-config.phpに以下の1行を追加します。
@ini_set('upload_max_filesize', '64M');
ただし、サーバーの設定でini_setが無効化されている場合は効果がありません。その場合は他の方法をお試しください。より確実に設定するには、以下のようにdefineを使う方法もあります。
define('WP_MEMORY_LIMIT', '256M');
この設定はWordPressのメモリ上限を引き上げますが、ファイルアップロードの上限には直接影響しません。アップロード上限の変更には、次の方法を併用してください。
方法2: .htaccess を編集する(Apache)
ApacheベースのサーバーでModules(mod_php)を使用している場合、WordPressルートディレクトリの.htaccessファイルに以下を追加します。
php_value upload_max_filesize 64M
php_value post_max_size 128M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300
注意: CGI版PHPやFastCGIを使用している環境(多くのレンタルサーバー)では、.htaccessでのPHP設定変更ができないため、この方法は使えません。500エラーが発生した場合は、追加した行を削除してください。
方法3: php.ini / .user.ini を編集する
PHP設定ファイルを直接編集する方法です。サーバーのPHP設定を変更する最も確実な方法ですが、アクセス権限が必要です。
php.ini の場合
upload_max_filesize = 64M
post_max_size = 128M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
.user.ini の場合(共有サーバー向け)
レンタルサーバーなどでphp.iniを直接編集できない場合は、WordPressのルートディレクトリに.user.iniファイルを作成して同じ内容を記述します。反映には数分〜数時間かかる場合があります。
upload_max_filesize = 64M
post_max_size = 128M
memory_limit = 256M
方法4: functions.php にフィルターを追加する
テーマのfunctions.phpにフィルターフックを追加する方法です。PHP側の設定が変更できない場合に使えますが、サーバー側のPHP設定を超えることはできません。
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size', '128M');
@ini_set('memory_limit', '256M');
@ini_set('max_execution_time', '300');
@ini_set('max_input_time', '300');
または、WordPressフィルターで上限を設定できます。
add_filter('upload_size_limit', function($size) {
return 64 * 1024 * 1024; // 64MB
});
注意: この方法はWordPress側の上限を変更するのみで、PHP自体のupload_max_filesizeがそれより小さい場合は、PHP側の制限が優先されます。
方法5: レンタルサーバーの管理画面で変更する
国内の主要なレンタルサーバーでは、管理画面からPHP設定を変更できます。最も安全で確実な方法です。
Xserver(エックスサーバー)
- サーバーパネルにログイン
- 「PHP」→「php.ini設定」を選択
- 対象ドメインを選択
- 「php.ini設定変更」タブを開く
upload_max_filesizeとpost_max_sizeを任意の値に変更- 「確認画面へ進む」→「変更する」をクリック
ConoHa WING
- コントロールパネルにログイン
- 「サイト管理」→「サイト設定」→「応用設定」
- 「PHP設定」の
upload_max_filesizeを変更
さくらのレンタルサーバー
- コントロールパネルにログイン
- 「スクリプト設定」→「php.ini設定」
- 設定値を変更して保存
設定変更後のテスト
設定を変更したら、実際に大きなファイルをアップロードして動作確認を行いましょう。DevLabのしきい値テスト用ファイルを使えば、設定した上限値の境界値テストを正確に行えます。
| テスト内容 | 確認ポイント |
|---|---|
| 上限未満のファイル(例: 設定が64MBなら63MB) | 正常にアップロードできること |
| 上限ちょうどのファイル(例: 64MB) | アップロードの成否を確認 |
| 上限超過のファイル(例: 65MB) | 適切なエラーメッセージが表示されること |
トラブルシューティング
- 設定が反映されない: Webサーバー(Apache/Nginx)の再起動、PHPプロセスの再起動が必要な場合があります。
- 500エラーが発生:
.htaccessの記述ミスやサーバー非対応の設定がないか確認してください。 - 413エラーが発生: Nginxの場合は
client_max_body_sizeの設定も確認してください(nginx.confで設定)。 - タイムアウト: 大容量ファイルのアップロードでは
max_execution_timeとmax_input_timeも引き上げが必要です。