【HTTPエラーの原因】WordPressで画像をアップロード時に起こるエラーの2つの解決方法

画像をアップロードしようとしたら「HTTPエラー」と表示されて、アップロードできない….

どうすればいいんだろう?

WordPressで画像をアップロードしたときに「HTTPエラー」と表示されるエラーの原因と解決法について解説していきます。

アップロード画像によって「HTTPエラー」が出たり出なかったりして、いまいち原因が分からないですよね。

先に結論を言うと、この「HTTPエラー」が表示される原因は「画像のアップロードにかかる時間が長すぎるから」。
記事内では詳しい原因と解決方法を説明していきますね。

「HTTPエラー」が出て、画像のアップロードができなくて困っている人は参考にしてください。

HTTPエラーの原因は画像のアップロード処理限時間越え

画像をアップロードした時に起こるHTTPエラー。
記事投稿のページだとただ単に「HTTPエラー」とだけ表示されるので、何のことか分かりにくいですよね。

ダッシュボードの「メディア」の「新規追加」から画像をアップロードすると、詳しいエラーの原因が表示されます。

そこを見ると、「Fatal error: Maximum execution time of 30 seconds exceeded in /○○(問題があるファイルの場所)」と表示されています。

このエラーは問題が起きているファイルの場所が問題なのではなく、

「Fatal error:Maximum execution time of 30 seconds exceeded」

という箇所が重要です。

日本語に訳すと「致命的なエラー:最大実行時間である30秒を超えています」となります。

この30秒とはアップロードの処理の制限時間で、この場合だと「設定されていた30秒を超えたために処理が止まり、HTTPエラーになった」ということになります。

HTTPエラーが起こるのは無限ループ対策のため

なんで、こんな制限があるのかというと、PHPのミスコードによる無限ループ対策のためです。

この制限がないと、ずっと処理をし続ける無限ループが起こってしまった時に、永遠に処理を続けてサーバーに負荷がかかり続けてしまいます。

そのような無限ループをを避けるために事前にPHPの処理の制限時間を設定しているのです。

実際にHTTPエラーが出ている人であっても、画像サイズが小さいものをアップしてみるとエラーは起こらないと思います。

これは、画像サイズが小さいので、負荷が小さく、制限時間内にアップロードの処理が完了するからです。

画像アップロード時のHTTPエラー解決方法

HTTPエラーの原因が「アップロードの処理時間を超えてしまったから」ということは分かったと思います。

なので、HTTPエラー解決方法の方法は以下の2つです。

  1. アップロードの制限時間を長くする
  2. 画像サイズを小さくしてアップロード時間を短くする

基本的に1つ目のアップロードの制限時間を長くするだけで解決しますが、両方やることをおすすめします。

アップロードの制限時間を長くする(php.iniの値を大きくする)

まず「アップロードの制限時間を長くする方法」から説明します。

処理時間を変更するには、WordPressをインストールしているサーバーの「php.ini」というファイルを変更する必要があります。

ただし、php.iniのファイルは非常に重要なファイルのため、PHPのコードを良く知らない人は、他のコードを誤って消してしまったりするリスクも。

そのため、基本的にレンタルサーバー側で簡単に設定できるようになっています。
今回はエックスサーバーの画面を使って、説明していきます。

この記事では、エックスサーバーの場合を説明しますが、他のサーバーでも「php.ini」を変更できるようになっていると思います。

まず、エックスサーバーのサーバーパネルにログインします。

中央下部の「php.ini設定」に進みましょう。

設定対象ドメインを選択していない場合は、「ドメイン選択画面」が表示されるので、変更するドメインを選択します。

ここからは「php.ini設定変更」と「php.ini直接編集」という2つのページを切り替えることができるようになり、どちらからでも変更することができます。

この記事ではどちらも紹介しますが、ミスしにくいという理由から、最初に紹介する「php.ini設定変更」から数値を変更することをオススメします。

「php.ini設定変更」から数値を変更する

「php.ini設定変更」に進み、「max_execution_time」の箇所を数値を変更します。

初期設定では「30」になっているので、これより数値を大きくしましょう。(「30」は30秒のことです)

ただ、数字が大きすぎればいいというものではありません。
数字が大きければ、それだけ処理にかかる時間の上限が大きくなります。

圧縮をせずに高画質な画像を日常的にアップロードする人は「120」などと数値を大きくした方がいいと思いますが、ほとんどの人は、初期設定の倍である「60」へ変更するだけで充分です。

「php.ini直接編集」から数値を変更する

php.ini設定変更の横にある「php.ini直接編集」という場所からでも、数値を変更することができます。

こちらも「max_execution_time」と書かれている数値を変更します。

max_execution_time = 60

このように数値を変えることで、上限を変えることができます。

書き換える時に、他のコードを消さないように気をつけましょう。

数値を「0」にしないように

max_execution_timeの数値を「0」にすると、制限時間が無制限となります。

万が一無限ループが発生してしまうと、永久に処理し続けることになり、サーバーに高負荷がかかるので「0」と設定しないようにしましょう。

画像サイズを小さくしてアップロード時間を短くする

つづいて2つ目の方法、アップロードにかかる時間が長すぎるのであれば、できるだけ短くしてしまおうという方法です。

1つ目の方法だけで解決しますが、こちらもやることでHTTPエラーの解決だけでなく、表示速度の改善にもなります。

やることは、WordPressに画像をアップロードする前に、画像圧縮ツールを使ってファイルサイズを小さくするだけ。

「JPEGmini」が有名ですが、個人的には無料で使える画像圧縮ツールの「Image Optim」がおすすめです(MACユーザーのみ)。

画像の圧縮ツールは「ImageOptim」がオススメ【無料で使えて容量無制限】

2019年4月23日

また、PNG形式の画像ファイルは重たいので、背景が透明じゃないといけない画像以外はPNGからJPEG形式に変換しましょう。

JPEGに変換するだけで、かなり画像サイズは小さくなります。

PNGからJPEGへ一括変換する方法【Mac限定】

2019年4月21日

HTTPエラーの原因と対処方法まとめ

HTTPエラーはアップロードにかかる制限時間を超えたために起こるエラーで、今回はその上限を上げることによって解決しました。

この設定は一度変更すれば、ずっとそのままなので、サクッと変更しちゃいましょう。

そして、日頃から画像サイズは小さくしてアップロードするようにしましょう。

【WordPressの勉強方法】初心者から稼げるレベルまでになろう

2019年12月11日
記事のタイトルとURLをコピーする
Amazonでお得に買い物

Amazonを使って、いろんなモノを購入されると思いますが、Amazonのギフト券のキャンペーンを利用するとお得です。

キャンペーンを利用すれば、普通に購入するのに比べて、

  • Amazonギフト券のチャージ金額に合わせてポイントが貯まる(最大2.5%)
  • 5,000円以上のチャージで1,000ポイントがもらえる(初回購入の人のみ)

特に、Amazonプライム会員であれば、ゲットできるポイントの利率が一般会員よりも高くなってお得です。

ぜひこの機会に、キャンペーンを利用して、欲しい物をお得に購入してみてください。

  • クレジットカード・電子マネーでのチャージはキャンペーン対象外なので注意