コンテンツにスキップ

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(エックスサーバー)

  1. サーバーパネルにログイン
  2. 「PHP」→「php.ini設定」を選択
  3. 対象ドメインを選択
  4. 「php.ini設定変更」タブを開く
  5. upload_max_filesizepost_max_sizeを任意の値に変更
  6. 「確認画面へ進む」→「変更する」をクリック

ConoHa WING

  1. コントロールパネルにログイン
  2. 「サイト管理」→「サイト設定」→「応用設定」
  3. 「PHP設定」のupload_max_filesizeを変更

さくらのレンタルサーバー

  1. コントロールパネルにログイン
  2. 「スクリプト設定」→「php.ini設定」
  3. 設定値を変更して保存

設定変更後のテスト

設定を変更したら、実際に大きなファイルをアップロードして動作確認を行いましょう。DevLabのしきい値テスト用ファイルを使えば、設定した上限値の境界値テストを正確に行えます。

テスト内容 確認ポイント
上限未満のファイル(例: 設定が64MBなら63MB)正常にアップロードできること
上限ちょうどのファイル(例: 64MB)アップロードの成否を確認
上限超過のファイル(例: 65MB)適切なエラーメッセージが表示されること

トラブルシューティング

  • 設定が反映されない: Webサーバー(Apache/Nginx)の再起動、PHPプロセスの再起動が必要な場合があります。
  • 500エラーが発生: .htaccessの記述ミスやサーバー非対応の設定がないか確認してください。
  • 413エラーが発生: Nginxの場合はclient_max_body_sizeの設定も確認してください(nginx.confで設定)。
  • タイムアウト: 大容量ファイルのアップロードではmax_execution_timemax_input_timeも引き上げが必要です。