WordPressで画像ファイルがアップロードできないときはphp.iniを確認。


WordPressのインストールで大きなファイルをメディアにアップロードする際にアップロードエラーが発生することがあります。
エラーによって原因はさまざまですが、ここではファイルサイズや制限時間などのサーバー設定によるエラーに対応する方法を紹介します。

よくあるエラーの一つが、

  • ファイルサイズ関連
  • 処理の制限時間

です。
運用の上で、ファイルサイズの上限を設定したり、処理の時間をある程度で制限することは大切です。
ただ、場合によってはシステムに沿わない設定になっていることもあります。

php_info()で現在の設定を確認する

では早速設定を変更する方法を紹介します。
設定の前に、まず現在どのような設定がされているのかを確認してみましょう。

次のようなphpファイルをホームページのルートフォルダなどにアップしてアクセスしてみてください。

<?php phpinfo(); ?>

現在稼働しているPHPの様々な設定情報を確認することができます

今回変更するのはこの中の、

  • memory_limit:メモリ使用量の上限
  • post_max_size:POSTデータの最大サイズ ※合計サイズ
  • upload_max_filesize:1ファイルあたりの最大アップロードサイズ
  • max_execution_time:タイムアウト時間

こんな感じで設定されているのがわかります。

例えば今の場合だと、

  • memory_limit:200MB
  • post_max_size:200MB

に設定されているのがわかります。
初期設定ではもっと少ないでしょう。
ご自身のサーバーで確認してみてください。

アップロードの際に、この制限に引っかかっていることも多く、
例えばpost_max_sizeが5MBとかになっていると、5MB以上の画像はアップできないということになります。

php.iniで設定を変更する

さて、上記の設定が小さい場合には変更しておく必要があります。
php.iniというファイルを用意して、適用したいフォルダの下にアップロードします。

php.iniの書き方ですが、
まずは、容量などの関係

;メモリ使用量の上限
memory_limit = 20M
;POSTデータの最大サイズ ※合計サイズ
post_max_size = 20M
;1ファイルあたりの最大アップロードサイズ
upload_max_filesize = 20M

容量だけでなく、処理時間にも注意しましょう。
ファイルサイズが大きくなるとアップロードに時間がかかるため、タイムアウトの制限も緩めておきましょう。

; タイムアウトを設定
max_execution_time = 180;

ここでは秒数を指定します。
0にすることで無制限にできますが、必ずどこかでタイムアウトするように制限はしておきましょう。

変更できたら改めて初めに確認したphp_info()を見てください。

変更した値に変わっていれば設定完了です。
サーバーによっては、php.iniでは変更できず、専用の変更画面を用意しているところもあります。
いずれにしても、これらの設定を変更することで、容量や時間の制限に関するエラーは解消できるでしょう。

php_info()を見るファイルは、確認後は他の人に見られないように削除するようにしてください。

[RelService] [Service]