WordPressでアップデート後に動かなくなった時にやること

WordPress本体やテーマ、プラグインなどが時々アップデートされますよね。
そうすると、自動的にアップデートされたり、アップデートしてくださいと促されます。

しかし、サイト運営側の意識はこうです。

セキュリティ的なリスクは理解できるけれど、アップデートしたらサイトが動かなくなったらどうすればいいんだ?

全く真っ当な不安だと思います。

アップデートしたら動かなくなる原因

アップデートしたらサイトが動かなくなる原因はいろいろあるかと思います。
・プラグインやテーマがWordPressの新しいバージョンに対応していない。
・プラグイン間で機能が競合してしまった。
・phpの新しいバージョンでしか動かない。
などなど。

その中でアップデートしたら動かなくなった原因ランキングで堂々の1位(私の感覚調べ)なのが、アップデート自体が正しく行われなかった、というものです。
これが原因になる不具合がフォーラムなどでもたびたび報告されています。

どのぐらい失敗しているのか

WordPress本体の自動アップデート失敗率が公開されています。
https://make.wordpress.org/core/2017/03/11/continuing-inline-docs-improvements-adjacent-to-4-8/

v4.7 : 0.0719%
v4.7.1 : 0.0055%
v4.7.2 : 0.0019%
v4.7.3 : 0.0028%

割合としては非常に少ない数字ではあります。
しかし母数はどうでしょう。
ちょっと情報が古くて申し訳ないですが、2010年11月時点で3200万サイト以上とされています。
http://wisdommingle.com/wordpress-is-worlds-best-blog-software/#toc-wordpress-com-

その0.0719%というと、単純計算で約23,000サイトでアップデートに失敗しています。
(もちろん古いバージョンのまま稼働しているサイトもあり、こんなざっくりした計算ではありませんが)
プラグインのアップデート失敗も含めれば、この何倍ものサイトが突然の事故に見舞われていると思われます。

システムでアップデートしたら、アップデート自体が失敗して動かなくなる可能性が大いにあるシステム。
どうでしょうか。
アップデート意欲もそうですが、利用意欲も大きくそがれます。

WordPress開発者の認識

この問題はWordPress開発元も認識していて、WordPress4.8の開発において
「変更されたファイルの数が従来より低く保たれた理由は、自動更新の失敗回数を減らすためです。」
https://make.wordpress.org/core/2017/03/11/continuing-inline-docs-improvements-adjacent-to-4-8/)と発信されています。

しかしなんでしょう、この対症療法は。
根本的にアップデートの信頼性を上げる対策を実施して頂きたいものです。
アップデートに失敗したらロールバックする、など。

そんなことを言っていてもいま止まっているあなたのサイトには何の役にも立ちませんね。
失礼しました。

アップデート自体に失敗した可能性があり、サイトが真っ白になったり、見たこともないエラーが表示されてしまっているそのサイトをどうすればいいかを以下にお伝えします。

アップデートに失敗したときに出来ること

アップデートに失敗したということは、コピーされるべきファイルが正しく配置されなかったことを意味します。
分かりやすく言えば、ファイルが破損しているか、不足しています
なんとか管理画面にログインできる場合は、アップデート機能をもう一度実施(可能であれば)すれば次はうまく行くかもしれません。
しかし、いちど裏切られているのでもうもう一度アップデート機能を信頼する気にはなれません。
その心の傷が癒えるにはもう少し時間が必要です。

確実にアップデートする方法は、WordPress本体なり、プラグインなり、テーマなりをダウンロードして手動でFTPアップロードすることです。
いわゆる、手動アップデートです。
FTPでサーバーにアクセスできない方はここまで長々と読んでいただいて大変申し訳ありませんが、ここでさよならです。

手動アップデートの方法

WordPress本体は以下のURLからダウンロードできます。
https://ja.wordpress.org/

テーマやプラグインはそれぞれの公式ページからダウンロードできます。
テーマ名、プラグイン名で検索すればすぐに分るでしょう。
例えば、jetpackはこちらです。
https://ja.wordpress.org/plugins/jetpack/
※プラグインのアップデーの詳細は、こちらをご覧ください。

ダウンロードしたzipファイルを解凍し、サーバーへ上書きでFTPアップロードします。
アップロード先のディレクトリは、それぞれ以下のとおりです。

■WordPress本体
WordPressインストールディレクトリ

■テーマ
WordPressインストールディレクトリ/wp-content/themes

■プラグイン
WordPressインストールディレクトリ/wp-content/uploads

手動アップデートの注意事項

この際に、注意事項があります。
我慢できずにすでに上書きしてしまった人は本当にすいません。

それは、カスタマイズを失わないようにすることです。
WordPressにおけるカスタマイズはテーマとプラグインに集中しています。
※ここではプラグインについては除外します。
なぜなら、自作プラグインを追加されている場合はアップデートの問題は自分で解決できるでしょうし、プラグイン本体をカスタマイズされている奇特な方は、このようなリスクは承知の上で実施されていると思われるからです。

WordPress本体にはデフォルトテーマが含まれています。
子テーマを使わずにテーマをカスタマイズしている場合は、wp-content/themesを除外してアップロードする必要があります。

テーマについてはテーマのアップデートを実施して失敗、というわけですから、子テーマを使ってない場合にはいまさらカスタマイズの心配をしても仕方ない気もします。
カスタマイズをなんとか救いたい方は、diffを取るなりしてがんばってカスタマイズをダウンロードしたテーマに反映し、FTPアップロードしてください。
その際、サーバー上のテーマファイルのバックアップを取得しておかれることを強くお勧めします。

カスタマイズ部分の上書き、という面ではプラグインについてはほとんどの場合、何も考える必要がありません。
そのまま上書きして問題ないでしょう。
しかし、もちろんプラグインにもアップデートに関する不具合リスクはあります。

プラグインのアップデート

プラグインをアップデートする前に、プラグイン公式ページのサポートを覗いてみるのは良い習慣です。
プラグイン公式ページに「サポートフォーラムを表示」というようなボタンがあります。
そこに新しいバージョンでの不具合が多数報告されている場合には、あなたのサイトでも不具合が発生する可能性が高いでしょう。
それらが解消するまで待つのが賢明です。

すでにアップデートしてサイトがおかしくなってしまった場合にも、公式サポートで情報を収集しましょう。
そこに怨嗟の声があふれていたらしめたものです。
いえ、もちろん不幸な出来事なのですが、不幸中の幸いです。
サポートフォーラムに不具合報告がたくさん寄せられているということは、早急に対応される可能性が高いということです。

発生している不具合への対応版がリリースされるまで、プラグインのフォルダ名を変更してプラグインを無効にするか、以前のバージョンをダウンロードしてアップデートしてしまったプラグインを上書きダウングレードすると復旧できる可能性が大いにあります。

プラグインのダウングレード

プラグイン公式ページの右側にある、「詳細を表示」というリンクをクリックします。plugin-detail-link
次の画面の一番下に過去のバージョンを選択できるリストボックスがあります。
どのバージョンを選択すれば良いかですが、大抵は一つ前のバージョンで良いでしょう。
公式サポートに、どのバージョンであれば正常に動く、とかこのバージョンに戻して動いている、という情報がある場合があります。
そのような情報も参考にしてください。plugin-old-version
選択したらダウンロードボタンを押せば、zip圧縮ファイルをダウンロードすることができます。

ダウンロードしたファイルを解凍してください。
プラグインの名称と似た名前のフォルダが作成され、解凍されたと思います。
Akismetだとそのまま、「akismet」というフォルダが作成されます。
たまに全く違う場合もあって困惑させられますが、気にする必要はありません。

それをFTPでアップロードするのですが、サーバーの以下のディレクトリ内を確認してみてください。(先に書いたプラグインのディレクトリと同じです)
WordPressインストールディレクトリ/public_html/wp-content/plugins
そこに、解凍して出来たフォルダと同名のフォルダがあるでしょうか。
ない場合は別のサーバー、別のディレクトリを見ているか、そもそもダウンロードするプラグインを間違っているかもしれません
サーバー上の同名フォルダを、リネームしてください。
ディレクトリ名の先頭に日付でも入れるといいかもしれません。
そして、解凍して出来たフォルダをアップロードします。

これで完了です。
サイトや管理画面にアクセスしてみてください。
復旧したでしょうか?

しかし、最新版のプラグインによってデータベースの値が書き換えられてしまっているような場合には、ダウングレードしても復旧できないかもしれません。
このようなケースでは事態は複雑です。
プラグインを使って様々な設定を行った内容を失ってしまう可能性が非常に高まっています。

それでもなんとかプラグインを復旧したい

プラグインの修正版が出るのを待つのが恐らくは一番賢い方法でしょう。
しかし、そのプラグインが無い状態ではそもそもサイトが成り立たないといった事情があるかもしれません。
ダウングレードも役に立たず、公式サポートに張りついても修正方法がアナウンスされる様子が全くない。
サポートフォーラムで質問したけれど、復旧につながる回答を得られない。
しかしサイトは復旧したい。
ここに書くことは、必ず成功する方法ではありませんし、プラグインに関する設定が間違いなく消えてしまいますが、試してみることはできます。

プラグインのダウングレードによるデータ削除

すでにプラグインのダウングレードしてみたけれど、サイトは真っ白、あるいはレイアウトが崩れて見る影もない、という段階まで来ていると仮定します。

1.データベースのバックアップを取る

壊れたデータのバックアップを取って何の意味があるのか、とおっしゃらず、取りましょう。
今からの作業でデータの一部は間違いなく消えてしまいます。
データさえ残っていれば、修正版がリリースされたときの対応の選択肢も広がります。

2.ダウングレードしたプラグインを有効化できているのであれば無効化し、削除する。

真っ当な作りのプラグインであれば、これでプラグインが登録した全データが削除されます
これで、プラグインの設定をいちから始める準備ができました。

3.ダウングレードバージョンのプラグインを再度アップロードし、有効化する

これですくなくともサイトにアクセスでき、プラグインは設定できてないなりに表示され、管理画面にもアクセスできれば一旦は作業終了です。
真っ白なキャンパスに同じ絵を描くのは気がめいる作業ですが、仕方がありません。
———-
プラグインが有効化できない、あるいは無効化、削除ができない、というケースも考えられなくはありません。
また、プラグインを削除する作業をしたのに、データベースのデータは消されなかった、ということも(主にプラグインの作りが悪くて)起こり得ます。
そのような場合は直接データベースの値を変更できる人を見つけるか、修正版のプラグインを待つか、サイトを作り直すか、といった選択肢になります。

その後

ここまで実施して、なんとかログインできるところまで来れた方、おめでとうございます。
しかし、アップデートしたプラグインがWordPressのバージョンに対応していなかったり、phpのバージョンに対応していなかったり、引き続き何かの問題が発生する可能性は否めません。

もし、プラグインのアップデートでサイトの動作がおかしくなった場合、プラグイン自体のサポートフォーラムを覗いてみてください。

アップデートの前に、それらのアップデート内容を確認するとリスクを下げることができると思います。
もちろん、バックアップは取りましょう。

(2017年5月23日に加筆しました。)