ワードプレスで投稿記事作成中に、メディアを追加からファイルをアップロードで画像を挿入すると、「httpエラー」が表示されてアップロードできないことが多々ありました。
HTTPエラーが出ても、何度かトライするとアップロードできたので、アップロードを繰り返して使ってきました。
ところが先日、何度アップロードしてもHTTPエラーが出て失敗してしまうので、原因・対策を調べてみました。
ワードプレスで画像をアップロードするときの「httpエラー」について解決策をご紹介します。
Contents
プラグインが悪さしている
「Wordpress HTTPエラー」で調べるとたくさん記事が出てきます。
みなさんこのエラーを経験済みのようです。
多くの記事に
- 「プラグインが悪さしているから、それを特定して停止させればいい」
- 「そのプラグインはEWWW Image Optimizerだったりするよ」
と書いてあります。
ひとまず1番簡単な対処法としてプラグイン停止を試してみました。
プラグインは何種類か入れているので、全部停止して1つずつ検証するのはさすがに困難。
ググって出てきたEWWW Image Optimizerを停止してみました。
EWWW Image Optimizerの停止⇒一旦は解決するが…
EWWW Image Optimizerというプラグインを停止して画像をアップロードしてみたら、エラーが出ません。
やったー!解決です。
このプラグインは画像圧縮のプラグインでした。
プラグインのアップデートがあったら、そのときに再度有効化してみてエラーが出ないか試してみたいと思います。
それでダメなら、EWWW Image Optimizer以外のプラグインを探す必要があります。
画像圧縮のプラグインは表示速度の高速化のためにもぜひ使用したいですからね。
WordPressのメディアアップロードでHTTPエラーにお悩みの皆様、
まずはプラグインEWWW Image Optimizerの停止を試してみてはどうでしょうか。
はい、これにて無事解決!めでたしめでたし。
と思いきや…
これで解決できたと思っていたのですが、後日「HTTPエラー」が再発してしまいました。
HTTPエラーが再発… 解決策は?
EWWW Image Optimizerの停止では、HTTPエラーは解決しませんでした。
そう、再び「HTTPエラー」が発生したのです。
もちろん、メディアの追加から画像をアップロードするときです。
んで、またいろいろ調べてみて、別の解決策を見つけました!
【原因】エラー「Maximum execution time of 30 seconds exceeded」
HTTPエラーが再発し、画像のアップロードを何度かトライしている中で、あるエラーを見つけました。
画像のアップロードをWordpress画面の左メニューにある「メディア⇒新規追加」からやってみたんです。
そうすると、エラーの表示がいつもの「HTTPエラー」ではなく、エラー内容が英語で詳しく表示されました。
(いつもは記事投稿画面の上部(パーマリンクの下)にある「メディアを追加」から画像をアップロードしていた。)
その内容が下の画像です。
Fatal error: Maximum execution time of 30 seconds exceeded と表示されています。
なんぞやとググってみると、30秒でタイムアウトしちゃったよっていうエラーでした。
このエラーが出たときは30秒を60秒や120秒とかに変更するといい。
といろんなサイトに書いてあったので、やってみることにしました。
【対策】エックスサーバーで php.ini を編集
エラー内容「Maximum execution time of 30 seconds exceeded」をググっていると、解決にはphpかhtaccessを編集せよ!と書いてありました。
素人&初心者の私には???です。
FTPソフトで編集してサーバーにアップするんだとか書いてありますが、具体的に何から初めていいのかわかりません。
ただ、調べていてわかったことは、このエラーはサーバーに関係しているんだなということ。
ということで、自身の使用環境である、エックスサーバー にログインしてみました。(サーバーパネルにログイン)
すると、トップ画面に「.htaccess編集」「php.ini設定」というメニューが存在していました。
なんてわかりやすい!
それぞれクリックしてみると「php.ini設定」の方が簡単そうだったので、「php.ini設定」でエラー「Maximum execution time of 30 seconds exceeded」の対策をしました。
具体的には「php.ini設定」⇒「php.ini設定変更」と進んで、「max_execution_time」の箇所を30から60へ変更するだけです。
変更はとても簡単!
これで30秒でタイムアウトというエラーは発生しなくなります。
【効果】HTTPエラーの発生無し!無事解決!
上記の設定変更後、画像のアップロードでHTTPエラーは発生していません。
アップロードは1回ですべて成功しています。
たくさん画像をアップロードしていますが、アップロードの失敗やHTTPエラー、「Maximum execution time of 30 seconds exceeded」は発生していません。
これで解決できました!やったー!!
ちなみに、Xserverのphp.ini設定のマニュアル画面にはこのような説明がありました。
こういう細かいところの説明もちゃんと載せてあって、ありがたいです。
初心者は助かるww
エックスサーバーでは、WordPress運用に特化したレンタルサーバーwpX の利用が可能です。
WordPressを高速に表示でき、1契約につき10個のWordPressの運用が可能など、負荷に強く高速なサイト運用が可能なのでオススメです。
おわりに
これでWordpress投稿において、写真や画像のアップロードでHTTPエラーに悩まされることは無くなります。
HTTPエラーが出ると何度もアップロードをやり直していたので、時間かかっていました。
ですが、これでhttpエラーが解決できたので、かなりスムーズな記事更新ができそうです。
HTTPエラーでお悩みの方がいましたら、上記内容を参考にしてみてください。
▼おすすめのブログ本