つい最近まで普通に画像をアップロードできていたのに、
突然、何度やってもHTTPエラーと表示されて
画像がアップロード出来ない、
HTTPエラーのキャプチャは撮り損ねてしまったのですが
適当に再現すると、こんな感じの見出しに「HTTPエラー」という文字が表示される感じです。
アップロード出来ても、ワードプレスの機能で画像編集(画像のトリミングなど)が出来ない、画像編集して決定ボタンを押すと、いつまでも待機マークみたいな丸いマークが真ん中でクルクルしていて完了出来ない、画像編集でフリーズする。
突然こうなりました。
画像をアップロードしようとして、HTTPエラーが出た時は
WordPressのメディア、ライブラリの中に壊れた画像ファイルがアップロードされていて、その都度壊れたファイルを消していました。
今回はHTTPエラーを解決した方法を書きます。
画像編集が出来ない件も解決出来ました。
しかし全てのHTTPエラーが私と同じ原因とは限らないので
あくまで参考程度にお願いします。
直前に書いていた編集中の記事があったら下書き更新か公開して投稿をする
ワードプレスで記事を書いている途中に、しばらくパソコンから離れてパソコンがスリープ状態になってしまった時に、不具合が出ることがあるようなので
HTTPエラーが出る直前に書いていた書きかけの記事があったら、下書きを更新するか公開ボタンを押して投稿します。
ワードプレスの記事編集には常に自動保存する機能があるので、
記事投稿する際の執筆中に編集中の画面のまましばらく席を離れるような時は一度下書き保存をしてからダッシュボードなどにページを移動して、編集中の画面のまま開きっぱなしということをしないほうが良いです。
一度サイトをログアウトして、ブラウザのキャッシュを消す
ワードプレスから一度ログアウトして
FirefoxやGoogle Chromeなどブラウザの機能で、ワードプレスをやっているサイト(ドメイン)のCookieを削除します。
例えば私のブログでしたらabc.ne10ge.comというサイトでHTTPエラーが起きたのであれば、キャッシュからabc.ne10ge.comを削除します。サブディレクトリやサブドメインに別々にインストールして複数のサイトを運営している場合はne10ge.comやdef.ne10ge.comなど、同じドメインでもHTTPエラーが起きていないサイトのキャッシュまで消す必要はありません。キャッシュの削除はエラーが起きたサイトのみでOKです。
php.ini設定でmax_execution_timeを30から60に変更する
HTTPエラーの際に
Fatal error: Maximum execution time of 30 seconds exceeded
というメッセージもワードプレス上に表示されました。
これは30秒経過したからタイムアウト(強制終了)したよという意味です。
エラーで何度も同じことをループしないためのストッパーのようなもので
この設定はエックスサーバーですと初期設定は30秒になっています。
そこで私はエックスサーバーのサーバーパネルからログインして、
php.ini設定に進み、max_execution_timeという項目に数字を入れるボックスがあって
最初は30と入っているので、60に変更しました。
ワードプレスに画像をアップロードした時に
60秒以内に完了出来なかったら強制終了する、という意味です。
これでうまくいかなかったら数字を90にしてみる、それでも駄目だったら120…
というような感じです。私は60秒の設定でうまくいきました。
上記の3点を実行することで解決出来ました
一番肝心なのは、max_execution_timeの設定だったと思います。
他の2点は、やらなくても直ったかもしれないけど念のため。
なぜこのようなことが起きたのか
最近まで普通に画像をアップロードできていたのに、どうして突然HTTPエラーが出るようになったのか、と考えると私の場合は以下の2点が原因だったかもしれないと思います。
記事編集画面のままパソコンがスリープモードに入った後に、そのまま記事の続きを書こうとしたらワードプレスが異常に重くて操作が至難だった
記事編集画面でスリープ状態になるまで長時間放置している時にワードプレスの自動保存機能が働き、不具合が起きた。私は1記事書くのにも何時間もかかる時があって休み休み書いているので、スリープモードに入っていることもしょっちゅうあります。HTTPエラーが頻繁に出るようになった直前に、記事編集画面を開いたまま放置した記事を、そのまま続きを書こうとしたら動作が異常に重くて重くてなかなか操作出来なくて、それも関係していたのかもしれません。
大きなサイズの画像をアップロードすることが通常となっていた
このサイトでは、やる予定はなく念のためなのですが、サイトをAMPに対応したくなる日が来るかもしれない備えに、最近では常に大きなサイズの画像を使うようになっていました。AMPは画像サイズが小さいとエラーが出てしまうので。
データサイズ自体は700KB程度で特に大きくはないのですが、縦×横という単純な大きさで言えば、縦1500、横2200くらいの大きなサイズの画像を常に使っていました。それゆえに、アップロードに時間がかかってしまい、サーバーで設定していた「30秒以内にアップロード出来なかったら中断する」という項目にひっかかってしまっていたのかもしれません。
コメント