ワードプレスで突然httpエラー、画像がアップロードできなくなった件<解決法>

昨日まで問題なかったのに、ワードプレスで画像をアップロードすると、HTTPエラーと表示されてしまいました。画像がアップできなくてはとても困るので、解決法を検索して探しました。

過去に同じような現象はあったらしく、また、その原因もさまざまであったことがわかりました。でもそれでは何の解決にもなりません。私が抱えている今の問題の原因は何で、どうすれば解決できるのかが知りたいわけで。

うまく行かなかった方法

対処法として載っている内容が、私の理解の範囲を超えていて・・・「あ、これなら理屈はわからないけれど、できるかも・・・」という方法だけを試してみましたが、どれもうまく行きませんでした。試してみたのはパーミッションの変更や、 .htaccessを変更やプラグインを停止してみることでした。

どれもダメ・・・。焦る。途方にくれる・・・。

エラーメッセージを見ると、不具合はclass-wp-image-editor-imagick.phpだった

検索してもどれもこれも同じ解決法しか出てこない。そこでもう、自力で考えてみることにしました。まず、画像をアップしてみて、出てきたエラーメッセージをよく見てみました。

すると、/wp-includes/class-wp-image-editor-imagick.phpというファイルの379行目にある&& defined( Imagick::ALPHACHANNEL_UNDEFINED )という部分に問題があるということがわかりました。

解決の近道は、検索キーワード

どこが悪いかがわかったのですが、そこをどうすればいいのかがわかりません。そこで一か八か、&& defined( Imagick::ALPHACHANNEL_UNDEFINED )で検索してみたところ、大当たり。まさに私と同じ症状の方が書いた解決法を見つけました!

原因はワードプレスをバージョン4.5にしたことでした。そして解決法は以下の通りです。

ワードプレスを4.5にバージョンアップしたのが原因の解決法

/wp-includes/class-wp-image-editor-imagick.php を開いて、379行目と380行目の記述を修正し、FTPでアップします。

ファイルを開くと379、380行目はこのようになっているので、
&& defined( Imagick::ALPHACHANNEL_UNDEFINED )
&& defined( Imagick::ALPHACHANNEL_OPAQUE )

それを以下のように書き換えるだけ。
(全角にするとエラーになるので注意してください)
&& defined(‘Imagick::ALPHACHANNEL_UNDEFINED’)
&& defined(‘Imagick::ALPHACHANNEL_OPAQUE’)

phpファイルを開くために、私はサクラエディタを使いました。サクラエディタは無料で使え、行数がでてくるので該当箇所をすぐに見つけられます。

ワードプレスで3つサイトを作っているのですが、3つとも画像がアップできない問題が、これで一気に解決しました!本当に助かりました。私は以下のサイトを見つけて、参考にさせていただきました。とてもわかりやすかったです。
WordPress4.5にしたらメディアアップロードでhttpエラーの解決方法

おわりに

子どもが小学校1年生で入学したばかり。学校が遠いので、途中まで送り迎えする上に午前中で帰ってくるので、仕事をする時間が激減。その中でのトラブルだったので、本当に困っていました。けれど1日で解決できてよかったです。

これで書きかけになっている記事の続きを書くことができます。明日?明後日?明々後日になるかもしれませんが、新記事アップの予定です。