昨日まで問題なかったのに、ワードプレスで画像をアップロードすると、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日で解決できてよかったです。
これで書きかけになっている記事の続きを書くことができます。明日?明後日?明々後日になるかもしれませんが、新記事アップの予定です。