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で設定できる項目の一覧が表示されます。

エックスサーバーの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と設定しても、エラーが起きてしまいます。

Write A Comment