WordPressサイトにファイルをアップロードしようとしたと、「アップロードしたファイルはphp.iniで定義されたupload_max_filesizeを超過しています」というメッセージが表示されるたんですか?
このエラーメッセージは、重い画像、動画、プラグイン、テーマなどWordPressサイトにアップロードするあらゆる種類のファイルをアップロードするときに表示されます。
本記事では、重いファイルをアップロードできるように、異常の解決策をご案内します。以下の内容を取り上げます。
- 「アップロードしたファイルはphp.iniで定義されたupload_max_filesizeを超過しています」エラーの原因
- 「アップロードしたファイルはphp.iniで定義されたupload_max_filesizeを超過しています」エラーの解決
「アップロードしたファイルはphp.iniで定義されたupload_max_filesizeを超過しています」エラーの原因

最初から始めましょう。サーバーのリソースを維持するために、サーバー会社はアップロードできるファイルの最大サイズを制限します。
この最大サイズ(メガバイト単位)は、upload_max_filesizeディレクティブで定義されます。
upload_max_filesizeディレクティブ自体はPHPを必要とするアプリケーションのデフォルトのサーバー構成ファイルであるphp.iniファイルにあります。
upload_max_filesize とphp.iniという2つの要素は、今回のエラーメッセージの内容です。
アップロード制限はWordPressの設定ではないことを理解しておきましょう。一方、「メディア」→「新規追加」に移動すると、WordPressサイトでも確認できます。

上記のように、Kinstaはデフォルトの制限を128 MBに設定しています。これは非常に高い値で、問題が発生する可能性はほとんどありません。ただし、他の多くのサーバー会社では、デフォルトを2 MBまたは4 MBなどの低い値に設定しています。
つまり、制限値より重いファイルをアップロードしようとすると、「アップロードしたファイルはphp.iniで定義されたupload_max_filesizeを超過しています」、または「file_nameがこのサイトのアップロードサイズ上限を超えています」などのメッセージが表示されます。
「アップロードしたファイルはphp.iniで定義されたupload_max_filesizeを超過しています」エラーの原因
本エラーを修正するには、ファイルサイズのアップロード制限を増やす必要があります。つまり、php.ini ファイルのupload_max_filesizeディレクティブの値を増やします。
これを行う方法はいくつかあります。どの方法を選択するかは、好みとサーバー会社の構成によって異なります。
1. サーバー会社のサポートに相談する
自分で試すことができるい方法を複数取り上げますが、最も簡単な解決策は、ご利用のサーバー会社のサポートに連絡して、上限を増やすてもらうことです。
これはよくある要求であり、サーバー会社のサポートは要求の内容をすぐ分かるはずです。ほんの数分しかかかりません。サーバー会社のサポートの仕事であるため、恥ずかしい要求ではありません!
Kinstaのお客様で、デフォルトである128MBの上限を引き上げたい場合は、MyKinstaの画面右下に表示されるチャットアイコンをクリックし、カスタマーサポートまでその旨をご連絡ください。

2. cPanelを使用してphp.iniを編集する
ご利用のサーバー会社がcPanelを使用している場合は、php.iniファイルとupload_max_filesizeディレクティブをcPanelダッシュボードから編集できるはずです。
まず、「MultiPHP INI Editor」を探します。

次に、ドロップダウンメニューから該当のWordPressサイトを選択します。その後、該当のサイトのupload_max_filesizeディレクティブを編集できます。

ニーズに基づいて値を増やします。
3. FTPを使用してphp.iniを編集する
前述のように、php.iniファイルは、サーバーのPHPアプリケーションに対する機能を制御するものです。
残念ながら、php.iniファイルにアクセスできるかどうかはサーバー会社の制限によります。そのため、次のセクションで説明する.htaccessを使用した方が信頼性が高いかもしれません。
一方、php.iniへのアクセスができるかどうかを確認する価値があります。
まず、FTPを使用してサーバーに接続し、サイトのルートフォルダーに移動します。
ルートフォルダーにphp.iniファイルがある場合は、そのファイルを編集できます。ない場合は、新しいファイルを作成し、php.iniという名前を付けます。

次に、以下のコードスニペットを追加するか、内容を変更します。
- 新規ファイルを作成した場合は、コードスニペットに貼り付けて、必要に応じて数値を変更します。
- 既存のファイルを編集している場合は、既存のファイルで同じディレクティブを探して、必要に応じて値を変更します。
upload_max_filesize = 12M
post_max_size = 13M
memory_limit = 15M

一部のサーバー会社では、上記の変更を機能させるために、サイトの.htaccessファイルにsuPHP ディレクティブを追加する必要がある場合があります。
これを行うには、PHPを使用して.htaccessファイルを編集し、ファイルの先頭近くに次のコードを追加します。
<IfModule mod_suphp.c>
suPHP_ConfigPath /home/yourusername/public_html
</IfModule>
yourusername
を必ずサイトの実際のファイルパスに置き換えてください。
4. .htaccessを編集して、upload_max_filesizeの値を増やす
上記の方法でphp.iniファイルを直接に作成または編集できない場合は、サイトの.htaccessファイルを編集して、upload_max_filesize ディレクティブを変更してみることもできます。
まず、FTPを使用してサイトに接続し、サイトのルートフォルダーにある.htaccessファイルを編集します。
次に、次のコードスニペットを追加し、必要に応じて値を調整します。
php_value upload_max_filesize 12M
php_value post_max_size 13M
php_value memory_limit 15M

上記のコードスニペットを追加した後に内部サーバーエラーが発生した場合、サーバーはPHPをCGIモードで実行している可能性があります。つまり、上記のコマンドを.htaccessファイルで使用できません。追加したばかりのスニペットを削除すると、サイトが再び正常に機能するはずです。
注。Kinstaをご利用の場合、KinstaはNGINXを採用しているため、サイトに.htaccessファイルがありません。Kinstaのお客様ででサポートが必要な場合は、サポートチームに連絡することをお勧めします。サポートチームが早速対応いたします。
まとめ
値を変更できたかどうかを確認するには、WordPressダッシュボードの「メディア」→「新規追加」に戻って、最大アップロードファイルサイズがphp.iniファイルで設定した値と一致しているかどうかを確認します。変更後の値が表示され、ファイルを問題なくアップロードできるようになったはずです。
最後になりますが、上記の対策でうまくいかず、サーバー会社のサポートも対応してくれない場合は、回避策としてFTPでもファイルをアップロードできます。FTPには制限値がなく、画像、プラグイン、テーマなど何でもアップロードできます。必要に応じて、ファイルを一括アップロードすることもできます。