WordPressで画像をアップロードした際にアップロードサイズを超えたエラーの対処方法

WordPressでファイルサイズが大きい画像をアップロードした際に、「このファイルはサイトの最大アップロードサイズを超えています。」というメッセージが表示された際の対処方法を記載。

エラー内容

最大アップロードサイズを超えたエラー画像

wordpressを使用していると上記エラーメッセージが表示されアップロードできなかった。

メディアからアップロードを試みた。

wordpress最大アップロードサイズ上限画像

メディアでアップロードしようとした時、最大アップロードサイズは2MBとなっている。

php.iniのアップロードの上限設定が2Mと設定されているために発生していた。この原因は、phpの設定にあります。

方法1 .Htaccessにアップロード制限サイズを記述する方法

.Htaccessに以下のコードを追加することにより、アップロードサイズ制限を変更することができます。

php_value upload_max_filesize 50m
php_value post_max_size 500m
php_value max_execution_time 300
php_value max_input_time 300

WP Htaccess File Editorプラグインをインストールすることで、管理者画面から変更することができます。詳しくは以下のブログを参照

方法2 php.iniの設定

php.iniはWebサイト全体に対しての設定値です。通常はサーバー管理者が設定を決めていることが多いです。また、php.iniの設定変更はWebサーバーのプロセス再起動が必要になります。

php.iniの場所:/etc/php.ini

※サーバーによっては、格納場所が異なるケースがあります。

 ; Maximum allowed size for uploaded files.
 ; http://php.net/upload-max-filesize
 upload_max_filesize = 2M

 ; Maximum size of POST data that PHP will accept.
 ; Its value may be 0 to disable the limit. It is ignored if POST data reading
 ; is disabled through enable_post_data_reading.
 ; http://php.net/post-max-size
 post_max_size = 8M

 ; Maximum amount of time each script may spend parsing request data. It's a good
 ; idea to limit this time on productions servers in order to eliminate unexpectedly
 ; long running scripts.
 ; Note: This directive is hardcoded to -1 for the CLI SAPI
 ; Default Value: -1 (Unlimited)
 ; Development Value: 60 (60 seconds)
 ; Production Value: 60 (60 seconds)
 ; http://php.net/max-input-time
 max_input_time = 30

 ; Maximum execution time of each script, in seconds
 ; http://php.net/max-execution-time
 ; Note: This directive is hardcoded to 0 for the CLI SAPI
 max_execution_time = 60
デフォルト
upload_max_filesize1ファイル当たりの最大アップロードサイズ
※指定サイズ単位:m=メガ、G=ギガ
100m2M
post_max_sizePOSTデータの最大サイズ
※1回のアップロードファイルすべての合計サイズ
※指定サイズ単位:m=メガ、G=ギガ
500m8M
max_execution_timeスクリプトの最大実行時間
※単位は秒、-1=制限なし
30030
max_input_timeファイルのアップロード時間
※単位は秒、-1=制限なし
30060
すなりん
すなりん

max_execution_timeとmax_input_timeについては、アップロード時間が長くなりエラーになるようであればチューニングしましょう。

upload_max_filesize、post_max_sizeもあまり大きな値を指定してしまうと、どんなサイズでもアップロードできてしまうので、50M、100M、300Mなど必要な分上げていくと良いでしょう。大きなファイルのアップロードは、サーバー側のネットワーク帯域を長く占有する可能性もあるので、ユーザー側サイトが重くなったりします。予防する意味であまり大きな値は入れない方がよいでしょう。

設定した結果

 ; Maximum allowed size for uploaded files.
 ; http://php.net/upload-max-filesize
 upload_max_filesize = 100M

 ; Maximum size of POST data that PHP will accept.
 ; Its value may be 0 to disable the limit. It is ignored if POST data reading
 ; is disabled through enable_post_data_reading.
 ; http://php.net/post-max-size
 post_max_size = 100M

 ; Maximum amount of time each script may spend parsing request data. It's a good
 ; idea to limit this time on productions servers in order to eliminate unexpectedly
 ; long running scripts.
 ; Note: This directive is hardcoded to -1 for the CLI SAPI
 ; Default Value: -1 (Unlimited)
 ; Development Value: 60 (60 seconds)
 ; Production Value: 60 (60 seconds)
 ; http://php.net/max-input-time
 max_input_time = 300

 ; Maximum execution time of each script, in seconds
 ; http://php.net/max-execution-time
 ; Note: This directive is hardcoded to 0 for the CLI SAPI
 max_execution_time = 300

2Mを超えるファイルのアップロードができました。

wordpress最大アップロードサイズ上限画像

方法3 functions.phpファイルの編集

functions.php変更

functions.phpファイルに以下のソースを追記する。

@ini_set( 'upload_max_size' , '50m' );
@ini_set( 'post_max_size', '500m');
@ini_set( 'max_execution_time', '300' );
@ini_set( 'max_input_time ', '300' );
すなりん
すなりん

この方法では私の環境ではうまく動作しなかったです。

すなりん

サイトの管理者「すなりん」です。現役のシステムエンジニアをしてます。要件定義からテスト、プロジェクトマネージャー、顧客調整、社内インフラなんでもこなします。いわゆるフルスタック・エンジニアです。 仕事柄色んな技術や製品を扱うことが多く、なかなか覚えているもの大変ですし、しばらくすると忘れてしまうことが多いので、自分なりの形で技術情報やIT関係の情報を掲載しています。 個人で仕事の合間をみながら記事の投稿やサイトを更新していますので、誤字や間違った内容があったりもしますので、閲覧者はご理解の上ご利用ください。

コメントを残す