先月末のこと、記事を書こうとサイトにアクセスしたのですが、どうしたことかサイトに接続できない状況になりました。「お気に入り」からのアクセスなのでURLの打ち間違いはあり得ません。
真っ先に疑ったのはWi-Fi機器の不具合でしたが、他のサイトには問題なくつながりました。ブラウザのキャッシュを削除したり(※これで直る場合もあるそうです)、色々試しましたがどうもそっちの問題でもなさそうでした。
とするとサーバー側で何らかのトラブルが生じているくらいしか思いつきませんが、サーバーの運営会社のHPを見ても特に何かトラブルが起きているというような情報もありませんでした。
ということは自分のHPのデータに何らかの不具合が生じているとしか考えられませんが、なぜかブラウザのリンクからはワードプレスの管理画面にも入れない状態になっていました。
そしてあろうことか、サーバーの管理画面からワードプレスの管理画面に移動しようとすると、ほぼ同じアドレスで一文字違いの海外サイト(ギャンブル系・えちえち系の広告多数)へ飛ばされてしまうという事態に気付き、さすがの私も血の気が引きました。
どういう手口かは分かりませんが、とにかく何らかの不正な手法によりサイトのデータが改変された可能性が濃厚でした。
可能性としては前記事が気に食わなかった業界の利害関係者の線が濃厚なのですが、今のところどのように攻撃されたかもはっきりしないので、その点は触れないことにします。
ここから復元までの道のりは想像以上に大変なものとなりましたが、結果ご覧の通りどうにか復元できましたので、その顛末を報告がてら記事にさせていただきました。
ブログ運営などされている方がいましたら、何かの参考になれば幸いです。
ちなみにこの作業にあたった私のPCスキルは次の通りです。
・ワードプレスは一通り使える。でも中身がどうなってるかは考えたこともない。記事とか画像とかどこにあんの?
・テーマは cocoon を見よう見まねで入れたほぼそのままで使用している。いじり方とか知らんし
・サーバーパネルは契約のときとか新ドメイン作るときくらいしか見ない。何か難しそうなのでなるべく触りたくないし近寄りたくもない
・ftpソフトは使ったことがない。ひたすら面倒くさそう。php?mysql ? 何それおいしいの?
サーバーのデータで復元してみる
今回の件で何よりも最悪だったのは、このサイトのバックアップを一切取っていなかったことでした。
普段からローカル環境でバックアップを取っていればこんなことにならなかったのですが、あいにく極度の面倒臭がりである私がそんなこまめなことをしている訳がありません。
というか、ぶっちゃけ一年以上たっても未だにろくにアクセスも稼げない場末のサイトにいちいちサイバー攻撃など仕掛けてくるような酔狂も普通いないだろ(自爆)、というのが正直なところでした。
ローカル側でバックアップを取れていない場合、後はサーバー側にデータが残っていることを祈るばかりなのですが、幸いなことに私の契約しているエックスサーバーでは、デフォルトのサービスでバックアップからの復元を利用できることが分かりました。(サーバーパネル→アカウント設定→バックアップ)
ちなみにエックスサーバーの場合は7日分のデータが自動保存されています。
多くの場合はこれでHPが正常に稼働していた直近の状態までデータを戻すことができるはずです。
エックスサーバーを契約されている場合はこれを使うのが一番手っ取り早い復元の手段です。(※以前は1回5,000円ほどかかる有料サービスでしたが、現在は無料で提供されているので安心して何度でも試すことができます。)
他社でも同様のサービスが提供されていることが多いので、まずはこの方法で復元できないかを試してください。
しかし残念ながら、私の場合はこの方法ではうまくいきませんでした( ノД`)ノシ
MySQLの復元
エックスサーバーの場合、次に試す手段として「MySQLの復元」というメニューがあります。こちらもサーバーパネルから実行することができますので、コマンドがどうのこうのみたいな知識がなくても簡単に試すことができます。
上のバックアップからの復元がうまくいかない場合でも、こちらで復活できることも多いようです。
ただ、残念なことに(以下同文 ( ノД`)ノシ
最終手段:ワードプレスのアンインストール
ここまでやっても上手くいかない場合、根本的にサイトのワードプレスが機能していない可能性があります。
私の場合は管理画面にさえアクセスできず、接続を試みると海外サイトに飛ばされてしまうという深刻な状態でしたので、断腸の思いでドメイン全体を初期化してワードプレスそのものを一旦アンインストールし、本サイトのデータを完全に削除することを選択せざるを得ませんでした。
エックスサーバーの場合は「Wordpress 簡単インストール」のところからワードプレスのアンインストールもできます。私は念を入れて「ドメイン設定」の画面から領域の初期化も行いました。
WP削除・・・からの再インストール
ここまでやるとドメイン内が完全にまっさらの状態になりますので、ここで改めてワードプレスを設置する必要があります。
エックスサーバーの場合は「簡単インストール」のメニューから簡単にワードプレスを再インストールできます。またテーマを入れている場合は親テーマ・子テーマも忘れずに導入しておきます。私は無料テーマの cocoon を入れています。
これでワードプレス本体は復活しました。
記事データのサルベージ方法について
さて、ここからが本題です。ここから記事データを復元しないといけないのですが、WPド素人の私にとってはこの部分が結構大変な作業でした。
まず記事データやリンク構造みたいなサイトの基本的な情報がどこにあるかですが、これはワードプレス内の「mysql」というファイルにまとめて保存されています。(WP童〇同然の私はてっきり記事ごとにファイルがあるのだとばかり思って見当違いなところを捜していましたwww)
そこで戻したい時点のmysqlを用意する必要があるのですが、エックスサーバーの場合はサーバーパネルのメニューに「MySQLバックアップ」「MySQL復元」が用意されており、2週間程度前のデータまで戻すことができます。
どちらの方法でもいいと思いますが、私は「MySQL復元」を行うことにしました。これで記事データはサーバー内に用意できたことになります。
復元したmysqlにつなぎかえる
しかしこれだけではサイトは元にもどりません。というのは、エックスサーバーの「簡単インストール」のメニューからインストールするワードプレスは全く新しい空っぽのmysqlが設定される仕様になっていて、既存のmysqlを設定してインストールすることはできないからです。
ではどうやって新しいワードプレスで記事を復元するかというと、インストールした後にこのデータベースを手動で繋ぎ替える必要があります。具体的な手順としては、「インストールしたWPのwp-config.php を修正して復元した方のmysqlにつなげる」、それだけです。
「何言ってるか分かんねーぞこのハゲー-!!」と思う方もあるかも知れませんが、ご安心ください。私も最初そう思いました。。。
結論から言えば、内容を理解する必要はありません。ただやればいいだけです。
作業自体は何も難しくありません。別にプログラミングのような知識が必要な訳ではなく、wp-config.php に書かれているmysqlの情報を復元した方の内容に書き換えてアップロードするだけです。
ただツールとしてftpソフト(サーバーとファイルをやり取りするソフト)とphpファイルを書き換えるためのテキストエディタ(Windows標準のメモ帳は使えません)が必要になり、ftpソフトの設定も初めてだと少し手間取るので、その点は少しハードルがあります。
ただワードプレスでサイトを運営していくのであれば、いずれ必要になるツールですし、いずれも無料で安心して使えるフリーソフトが提供されています。またやり方を丁寧に解説してくれているサイトも星の数ほどありますので、プログラミングの技能がない人でも一つ一つ手順を踏めば必ずできる作業です。
まあどうしてもそういう作業がイヤならurl設定も含めて全記事を手動で書き直すしかないですが、その無限にむなしい不毛な作業を思えば無料ツールの二つや三つ入れるくらい何でもありませんね。。。
ちなみに私はftpソフトは定番の「ffftp」、エディタは「Atom」を導入しました。
この情報を書き換えるだけであら不思議、サイトの記事がurlも含めて完全に再現されました。
ただ、画像の戻し方はわかりませんでしたが、そちらは大した量でもないので記事の点検がてら手動でちまちま復元することにしました。
まだ画像が出てないページがあるのはそういう事情なのです。。。
コメント