先日、KUSANAGIのモジュール更新したところ同じサーバーで管理しているWEBページが表示されなくなりました。
私だけの問題というわけでもなくツイッターなどで複数人見かけましたので同じ症状となってしまった方向けに対策をご紹介します。
なお、KUSANAGIとは簡単に言えばWordPressが速くなる仕組みです。
詳しくは下記記事を御覧ください。
私は昨年の年末から導入しています。
KUSANAGIモジュール更新で不具合??
KUSANAGIのモジュール更新とはKUSANAGIやWEXAL、phpなどのバージョンを更新するためのものです。
今回、KUSANAGIのモジュール更新(8月12日分)を行った方の一部に不具合が生じたようです。(すでに8月12日分のKUSANAGIのモジュール更新の案内は消えています)
具体的な中身の検証をしたわけではありませんが、ネットで実際に症状が起こった方の報告をみると「WEXAL」を導入していた場合に問題が起こってしまったようです。
私もWEXALを導入していましたのでWEBページがすべて表示されなくなりました。一部WEXALを未導入のサイトは問題なく閲覧できましたのでWEXALの関係なのは確かでしょう。
WEXALを導入すると一部の重要ファイルに変更が加えられます。
今回おきた問題はそれに起因したことだと推測されます。
ですから不具合というよりもどちらかというと相性の問題ですかね
WEXALとはKUSANGI上に導入することでブラウザからのHTTPリクエスト、サーバでの動的処理、HTTPレスポンス、レンダリングといったWeb表示のすべてのステップで高速化することができる仕組み。
WEXALはかなりスピードアップに貢献してくれるのですが、ちょっと扱いが難しいところもあるんです。
管理画面にも入れない
なお、今回の現象が起こるとワードプレスの管理画面にも入れなくなりました。
ですから管理画面上でバックアップ等で修正することもできません。(そもそもそういう問題ではないですが)
WEBページが表示されなくなったときの対処法
今回のような話でWEBページが表示されなくなったときの対処法をみていきましょう。
いくつかの方法が考えられます。
VPSのバックアップから復元
今回私が実行したのはVPSのバックアップから復元です。
私が使っているConohaVPSでは有料ですが1週間に一回程度自動でサーバーまるごとバックアップイメージを取ってくれる「自動バックアップ」という機能があります。
それを利用していましたので、一旦サーバーを止めて自動バックアップのデータから再構築をして元に戻すという作業を行いました。
ただし、自動バックアップは週に1度どこかで保存する形となりますのでそのタイミングから後のデータは復元されませんのでご注意ください。
私の場合には「自動バックアップ」での復元後にワードプレスのプラグインで取っているワードプレスのバックアップから更に復元することでその間を埋めています。
自動バックアップや保存イメージを取っているならこれが一番簡単な方法でしょう。
復元のやり方
Conohaの場合の復元方法をご紹介しましょう。
Conohaコントロールパネル→サーバー→シャットダウン→サーバー再構築→自動バックアップ(保存イメージ)選択
なお、シャットダウン→サーバー再構築はそれなりに時間がかかりますのでご注意ください。
私の場合には合計して1時間位かかったでしょうか・・・機会損失ですが仕方ありません。これからはKUSANAGIのモジュール更新をやるのを夜中にしようと心に決めました(笑)
yumのロールバック
私は今回利用していませんが、もう一つやり方が考えれます。
KUSANAGIのモジュール更新をロールバックする方法。
つまり、KUSANAGIのモジュール更新をなかったことにするのです。
今回のケースではKUSANAGIのモジュール更新するとWEBページは見れなくなったり、管理画面にははいれなくなりましたがコンソール等は問題なく動きました。
そこでコンソールで以下のコマンドを実行すると過去の履歴が見れます。
# yum history
それで今回問題となった部分のIDを確認して
# yum history undo ID
を事項すれば問題箇所のインストールを元に戻すことができるはずです。
WEXALをアンインストール
もう一つがWEXALを一旦アンインストールする方法です。
ネットで見てるとこの方法を実行した人が多かったよう・・・。
WEXALが原因なら一旦消してしまえってことです。
私もプラグインのバージョンアップで不具合が起こって表示されなくなるときは一旦プラグインを消したりしますね。
なお、WEXALは簡単に止めることもできますが、今回のケースでは止めても問題の解消には繋がりません。
また、WEXALは公式に書いてある方法でアンインストールすると今回と同じようにはWEBページが表示されない状況となります。(私も以前にハマりました)
一部重要ファイルが書き換えられていますのでそれを元に戻す作業が必要なのです。
詳しくはこのサイトが詳しいので参考になさってください。
追記:公式から対応が発表されました
公式から今回の問題についての対応が発表されましたので追記します。
今回の問題は8月12日にKUSANAGIモジュール更新されたnginx(1.19.2-1)とWEXAL(v2.3.0)の相性の問題だったようで、nginxのダウングレードが推奨されています。
# yum list kusanagi-nginx
でnginxのバージョンを確認し1.19.2-1となっていれば不具合が発生するバージョンですから以下の手順でダウングレードをします。
# yum downgrade kusanai-nginx
# kusanagi nginx
詳しくは公式ページを御覧ください。
まとめ
今回は「KUSANAGIモジュール更新したらWEBページが表示されなくなった時の対処法」と題してKUSANAGIモジュール更新時にWEBページが表示されなくなった時の対処法をみてきました。
急にWEBページが見れなくなると焦ってしまうでしょうが、今回ご紹介した手順でやれば復元できると思いますから冷静に対処しましょうね。
最後まで読んでいただきありがとうございました
フェイスブックページ、ツイッターはじめました。
「シェア」、「いいね」、「フォロー」してくれるとうれしいです