2016/08/24

WordPress4.5に更新後、画像がアップ出来ない対策まとめ

昨日別で運営しているWordpressの最新版4.5の更新のお知らせがあったので、さっそく更新しました。

ところが更新後になんと不具合が・・・。

画像がアップロードできないよおおおおおお

1

何度アップロードしても「HTTPエラー」と出てしまいどうすることも出来ない始末。
FTPからはアップロード出来るけど、メディアライブラリには反映されないので、意味なし。

まぁ結論から言うと、僕の場合はclass-wp-image-editor-imagick.phpをダウングレードすることによって直りました。

ということでいろいろ対策を試したのでメモ。

プラグインを全て停止

まずはプラグインを全て停止させました。
特に画像に関わるタイプのプラグインを先に停止させたのですが、効果はなし。

画像フォルダのパーミッションの設定

FTPで画像を格納しているフォルダのパーミッション(属性)の設定を「755」から「777」に変更し、書き込み権限を緩くしたんですが、なにも変わらず。

転送サイズの問題

画像アップロードの際にアップできるデータの容量が原因かとFTPでWordpressの入っているフォルダの「.htaccess」を確認してみたところ、特に関係無し。
というかWordPressを更新すると転送サイズが変わるなんて聞いたこと無いな。

諦めてロリポップに問い合わせ

Google先生でも解決できなかったら、レンタルサーバー会社に連絡しましょう。
メールで更新後に画像がアップロードできない旨を伝えました。
すると、他にも4.5にアップロードした人の中に同じ現象が起こっている人がいたみたいです。

一応、ロリポップが教えてくれた解決策。

ご連絡いただいた件につきまして、お調べしましたところ
WordPress 4.5 では「/wp-includes/class-wp-image-editor-imagick.php」
というファイルの記述が影響して、メディアのアップロードが
行えないケースがあるとWordPressにて報告されていました。

※以下はWordPressの英語版のページです。

▽#36501 (Fatal error: Undefined class constant
'ALPHACHANNEL_UNDEFINED') WordPress Trac
https://core.trac.wordpress.org/ticket/36501

恐れ入りますが、WordPressの最新バージョン 4.5 の
仕様が影響してエラーが発生している可能性がございます。

対処方法として、「/wp-includes/class-wp-image-editor-imagick.php」を
修正する方法が紹介されておりますので、以下のように
379行目と380行目の記述を修正いただきますようお願いいたします。

----------------------------------------------------------
&& defined( Imagick::ALPHACHANNEL_UNDEFINED )
&& defined( Imagick::ALPHACHANNEL_OPAQUE )
----------------------------------------------------------

----------------------------------------------------------
&& defined( 'Imagick::ALPHACHANNEL_UNDEFINED' )
&& defined( 'Imagick::ALPHACHANNEL_OPAQUE' )
----------------------------------------------------------

また、以下より「ロリポップ!FTP」での
ファイルの記述の修正手順をご案内いたします。

さっそくFTPで「/wp-includes/class-wp-image-editor-imagick.php」の379行目と380行目のコードを変更してみました。
これで助かったー!と一安心していたのですが、なんとまだエラーが直りません。
もうなんなんだよー。更新なんてしなければよかった。

でも更新しないとセキュリティ的に良くないのでもう一度解決策を探しました。

WordPressのダウングレード

最終手段のWordPressのダウングレード。要するにせっかく更新した最新版のWordpress4.5を一つ前のバージョンに戻すことです。
しかしこれがなかなか時間がかかりそう・・・。
ファイルの数が多かったので、転送するだけでもなえてきましたよ。ということでまだ他の手段を探してみました。

class-wp-image-editor-imagick.phpのみダウングレード

そこで見つけたのが先ほどロリポップにエラーがあるファイルだと指定された「class-wp-image-editor-imagick.php」のみをダウングレードする方法です。
これなら1ファイルで済むので早速実行。
ここから4.4.2をダウンロード。
解答して/wp-includes/class-wp-image-editor-imagick.phpのファイルのみFTPでWordpressの同じ階層にアップロード。

結果、直りました!!

いやーほんと助かりました。
でもこのエラー割と致命的ですよね。本当に困ったものです。

このようにWordpressやプラグインは頻繁に新しいバージョンが出ます。ダッシュボードにそのお知らせがくるので、セキュリティ上はsっかりと更新した方がいいのですが、このように不具合も起きることがあるので、起きてしまった場合はとにかくいろいろ試してみましょう。