先日、ブログの記事を更新しようとして画像をアップしていたら「httpエラー」という表示がでて、アップロードすることができませんでした。
数回やり直しても、いったんログアウトして、再度ログインして試してもダメ。
試行錯誤ののちなんとかアップロードできたので備忘録として解決策を記録しておきます。
目次
wordpressのhttpエラーは画像 サイズの問題ではなかった!
画像をアップして失敗した当初は、「画像のサイズが大きすぎたのかな?」と思いました。
実際のファイルサイズは
[aside type=”boader”]
ファイルサイズ: 186 KB
サイズ: 1365 × 1024 [/aside]
特に大きすぎるというほどでもありません。
実際にこれより大きなサイズのファイルを何度もアップしたことがありましたが、特に問題も起きていませんでした。
私は、先月から今月にかけて、Xサーバーへの引っ越しとSSL化をしました。
それが直接の原因とは思えませんが、機能の一部が変更されたバグなのかなぁとも思い、同様のケースをリサーチしてみました。
WordPress HTTPエラーを引き起こしているものは?
ネットを調べてみるとやはり同様のエラーに関する記事がいくつもありました。
ただ、WordPressのバージョンによって引き起こされるバグとかプラグインが原因とか、複数の可能性があるようです。
ですので、私はひとつの解決策を試してみたけれど、当てはまらないので次の解決策をチェック・・・というやり方で何とかエラーを起こさずに画像をアップロードすることができました。
以下、それらの「原因」を挙げておきます。
- EWWW Image Optimizerなどのプラグインのバグ
- アップロード時の時間設定
EWWW Image Optimizerなどのプラグインのバグ
プラグインがHTTPエラーの原因ではないか?という記事がいくつか見られました。
一般的に言って、プラグインが原因でエラーが起こるケースは結構ありますから、プラグイン原因説は十分あり得ますね。
ただ、調べてみると、私はこの「EWWW Image Optimizer」をブログにインストールしていませんでした。
また、このブログで使っているプラグインは他のブログでも使っていますし、今のところ他のブログでエラーは出ていないので、プラグインが原因とは思えませんでした。
アップロード時の時間設定/class-wp-image-editor-imagick.php
メディアから再度画像をアップロードしてみたところ、エラーの原因がわかりました!
以下のような表示が現れたからです。
[box class=”red_box” title=”エラーの内容”]Fatal error: Maximum execution time of 30 seconds exceeded in/home/■■■■■/successcharging.net/public_html/wp-indludes/class-wp-image-editor-imagick.php on line 342[/box]
まぁ、要するに、アップロード時の時間が30秒越えちゃったのでエラーが出ていますよ、ってことですよね?
どうやら、原因は「class-wp-image-editor-imagick.php」にあるようです。
じゃ、どうやって解決すればいいのか?
調べてみると、これまた複数の異なったやり方が紹介されていました。私は取りあえずこちらに紹介したやり方でサクッと解決してしまったので、それ以外の方法は試していません。
解決策:php.ini設定のmax_execution_timeを変更する
サーバーパネルから「php>php.ini設定」を選択する。
「ドメイン選択画面」が表示されるので、修正するドメインを選択する。
「php.in設定変更」を選択。
「php.in設定」に変わったら、画面を下にスクロール。
「その他の設定>max_execution_time」の30を60に変更する。
「設定する(確認)」をクリック。
「php.inの編集が完了しました。」という文章が表示されたら設定完了です!
以上、こちらの設定を完了してから取りあえずエラーは発生していません。
しばらく様子を見ておこうと思います。