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には制限値がなく、画像、プラグイン、テーマなど何でもアップロードできます。必要に応じて、ファイルを一括アップロードすることもできます。