WordPressでデフォルトのアップロードサイズが小さいと、大きめの画像や動画などをアップロードするときにエラーがでてしまうことがあります。先日、All in One Migrationというプラグインを使ってサイトの引っ越しをするときも、引っ越し先のサイトのアップロード容量が小さかったためにエクスポートした引っ越し用ファイルがインポートできないという問題が発生しました。
使用しているサーバーによって変更の仕方が変わってきますが、ひと通り「これをすればアップロードサイズが上げられる」という方法は全部試したので、ここにまとめておきたいと思います。
アップロードサイズを大きくするために変更するべき項目
アップロードサイズを大きくするにはupload_max_filesizeを大きくすることでできますが、それだけだと、アップロード中にタイムアウトのエラーが出てしまうなど、うまくいかないことがあります。それで、以下の5つの項目をまとめて適切な数値に変更することが必要です。
upload_max_filesize
アップロードファイルの許容最大サイズを設定する項目です。私のケースでは、サイト引っ越しプラグイン All in One Migration でのエクスポートファイルが512Mより大きかったので、1Gに変更することとしました。
post_max_size
アップロードファイルの許容最大サイズを設定する項目。post_max_sizeの値はupload_max_filesizeの値以上にします。私のケースでは1Gとしました。
memory_limit
プログラム(WordPressサイト)が使用できる最大メモリです。こちらも1Gに変更。
max_execution_time
スクリプトの最大実行時間(または強制終了されるまでの時間)。秒単位での指定です。サイト引っ越しのインポートと実行にはそれなりに時間がかかるので、ここでは3000秒(=50分)としました。
max_input_time
ファイルのアップロード時間(秒単位)です。こちらも3000(=50分)と設定しました。-1にすると無制限となります。
上記の設定値は何をアップロードしたいかによっても変わってくるので、ご自分の用途に合わせて値を設定してみてください。
ちなみに、サイトを置いているサーバーの現在の設定値はWordPress管理画面から確認できます。管理画面メニューの「ツール」>「サイトヘルス」をクリックし、ページ上部で「情報」をクリックします。

「サーバー」という項目のアコーディオンを開き、黄色でマークした部分がそれです。

以下では上記の項目の変更方法について一つずつ説明します。
方法1.サーバーの管理画面から変更する
お使いのレンタルサーバーの管理画面でphp.iniファイルを変更できる場所があれば、そこで変更するのが一番確実で手っ取り早いです。例えば、エックスサーバーの場合は、サーバーパネルから「php.ini設定」を選択、変更したいドメインを選ぶと、php.iniで設定できる項目の一覧が表示されます。


一覧の中から「その他の設定」のセクションで、↑のマーカーで示した5つの項目を変更します。
値を変更後、「確認画面に進む」ボタンをクリック、確認後に「変更する」ボタンをクリックすると値が更新されます。
方法2 WordPressの設定ファイル(.htaccess, wp-config.php)に変更点を書き込む
WordPressの設定ファイルに書き込むことでアップロードサイズを変更できる場合がありますが、サーバーによっては変更できない場合もあります。
.htaccessに書き込む場合
php_value upload_max_filesize 1G
php_value post_max_size 1G
php_value memory_limit 1G
php_value max_execution_time 3000
php_value max_input_time 3000
wp-config.phpに書き込む場合
@ini_set( 'upload_max_filesize' , '1G' );
@ini_set( 'post_max_size', '1G');
@ini_set( 'memory_limit', '1G' );
@ini_set( 'max_execution_time', '3000' );
@ini_set( 'max_input_time', '3000' );
私の場合、Dreamhostという海外のレンタルサーバーでアップロードサイズの変更をしようとしたのですが、上記をいずれのファイルに追記しても、アップロードサイズは変更できませんでした。
方法3 サーバーのphp.iniを直接編集する
Dreamhostでは、エックスサーバーのように管理画面から設定変更することはできません。.htaccessやwp-config.phpで変更できないとなると、残りの選択肢は、サーバーのphp.iniを直接編集する(Dreamhostの場合.phprcというファイル)、です。
使っているレンタルサーバーのユーザーガイドにphp.iniの場所が載っているので、そこからFTPまたはSSHでアクセスして変更します。
以下のように設定しました。
upload_max_filesize = 1G
post_max_size = 1G
memory_limit = 1G
max_execution_time = 30000
max_input_time = 30000;
方法4 WordPressプラグインを使う
サーバーの管理画面から変更はできないけど、設定ファイルをいじるのが心配、FTPやSSH接続の仕方を知らない、という場合は、WordPressのプラグインを使うという手もあります。
以下のプラグインでは、使用しているサーバーの上限を超えない範囲で、ファイルのアップロードサイズを変更することができます。

この↓プラグインでは、ファイルのアップロードサイズに加えて、スクリプトの最大実行時間max_execution_timeも変更できます。

注意事項
レンタルサーバーによっては、アップロードサイズに制限がかかっている場合があります。たとえば、ヘテムルのレンタルサーバーでは128MBが設定できる最大のアップロードサイズです(2021年7月時点)。このような場合は、いくらWordPress側で500MB、1GBと設定しても、エラーが起きてしまいます。
コメント