WordPressで「upload_max_filesize」エラーを修正する方法

intermediate📝 WordPress2026-04-02| WordPress(全バージョン)、PHP 7.4以上、ApacheまたはNginxウェブサーバー

Error Message

The uploaded file exceeds the upload_max_filesize directive in php.ini
#wordpress#php.ini#upload_max_filesize#サーバー設定#devops

問題の概要新しいテーマや15MBの高解像度ヒーロー画像をアップロードしようとした際、WordPressに拒否されることがあります。画面に赤いバーが表示され、The uploaded file exceeds the upload_max_filesize directive in php.ini というエラーメッセージが出力されます。これはWordPressのバグではありません。サーバーのPHP設定によって、巨大なファイルがストレージを圧迫しないように設けられたセキュリティ上の上限設定です。

多くのホスティングプロバイダーでは、デフォルトの上限をわずか2MBまたは8MBに設定しています。Elementorのようなモダンなページビルダーや、容量の大きいプラグインは20MBを超えることが多いため、遅かれ早かれこの壁に突き当たることになります。

現在の制限値を確認するコードの修正を始める前に、サーバーで許可されている正確な値を確認しましょう。WordPressダッシュボードの「メディア > 新規追加」に移動します。アップロードボックスのすぐ下に、「最大アップロードサイズ: X MB」というテキストが表示されているはずです。

コマンドラインを好む場合は、次のコマンドを実行して制限値を確認できます:

php -i | grep upload_max_filesize

あるいは、WordPressのルートフォルダに <?php phpinfo(); ?> と記述した info.php というファイルを配置してください。ブラウザで yourdomain.com/info.php を開き、upload_max_filesizepost_max_size を検索します。この2つの値は、エラーを解決するためにセットで調整する必要があります。

制限値を増やす方法### 1. php.iniファイルを編集する自身でVPSを管理している場合や、XAMPPなどのローカル環境を使用している場合、これが最もスマートな解決策です。使用中の php.ini ファイルを見つける必要があります。PHP 8.2を実行している標準的なUbuntuサーバーの場合、通常は /etc/php/8.2/fpm/php.ini にあります。

以下の特定の行を探し、数値を増やします。例えば、64MBのファイルを許可するには次のように記述します:

upload_max_filesize = 64M
post_max_size = 70M
memory_limit = 128M

**プロのアドバイス:**常に post_max_sizeupload_max_filesize より少し大きく設定してください。「post」サイズには、ファイル本体に加えてリクエストで送信される他のフォームデータも含まれるためです。保存後、設定を反映させるためにサービスを再起動します:

# Apacheの場合
sudo systemctl restart apache2

# Nginx/PHP-FPMの場合
sudo systemctl restart php8.2-fpm

2. .htaccessファイルを使用する(Apache)共用サーバーを利用していてメインのPHP設定にアクセスできない場合は、WordPressのルートディレクトリにある .htaccess ファイルが役立ちます。ファイルの最下部に以下の行を追加してください:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value memory_limit 128M
php_value max_execution_time 300

注意:ホストがFastCGIを使用している場合、これが原因で「500 Internal Server Error」が発生することがあります。サイトが表示されなくなった場合は、追加した行を削除してアクセスを復旧させてください。

3. Nginxの設定を更新するPHPの設定を修正しても、Nginxが「413 Request Entity Too Large」エラーでリクエストをブロックする場合があります。サイトの設定ファイル(/etc/nginx/sites-available/ 内にあります)を編集して、より大きなアップロードを許可するようNginxに指示する必要があります:

server {
    ...
    client_max_body_size 64M;
    ...
}

sudo nginx -s reload を実行してNginxをリロードすれば完了です。

4. wp-config.phpによる方法これは最終手段です。upload_max_filesize はシステムレベルの設定であるため、セキュアなモダン環境ではほとんど機能しませんが、他に選択肢がない場合は試す価値があります。「編集が必要なのはここまでです」という行の前に以下を追加します:

@ini_set( 'upload_max_filesize' , '64M' );
@ini_set( 'post_max_size', '64M');

ベストプラクティスのまとめ- コマンドの連鎖: アップロードは「Nginx/Apache」、「PHP」、そして「WordPress」という3つのゲートを通過する必要があります。いずれかのゲートが狭すぎると、アップロードは失敗します。- すべてを再起動する: PHPの設定は動的ではありません。PHP-FPMやApacheを再起動しない限り、サーバーは以前の2MBという制限を使い続けます。- サポートに連絡する: 一部のマネージドホストでは、これらの設定がロックされています。上記の手順を試しても「メディア > 新規追加」の制限が変わらない場合は、ホスティング会社に増枠を依頼してください。

Related Error Notes