Webサイトのファイル一式が消えた状態で、DBしか残ってない。その状態からサイトを復旧する機会がありました。
ファイル一式がごっそりないので、自分で追加した画像ファイルやプラグイン、テーマなどは存在しません。
でも、DBがあれば記事だけは復活できます。
この記事は、DBだけが残っている状況で、サイトをどこまで復旧できるかチャレンジした時の記録です。
マルウェア感染してサイトのドメインを解除してしまった(らしい)
Xserverでマルウェア感染してサイトが乗っ取られている状態になると、Xserverからアクセス禁止にした旨のメールが来て403状態になります。
この時のメールに解除手順が書かれているのですが、その手順はドメイン解除なのです。ドメイン解除を何も考えずに実行してしまうとドメインのファイル一式が丸ごと消えてしまいます。
そうなるとXserverの有料バックアップを購入するしかなくなります。
今回のケースは復旧できるのはDBのみでした。
DBからサイトを復旧する時の手順
管理画面からDBをダウンロードできないサーバーで、かつ、DBへのログイン自体が出来ない状態の場合は、今回の手順は使えません。
DBのバックアップをダウンロード
幸いなことに、XserverはDBを管理画面からダウンロードできます。DBへのログインは不要です。
wp-config.phpが無く、データベース名がわからないという時は?
Xserverの管理画面から、目ぼしいデータベースのsqlファイルをダウンロードしておきます。
sqlファイルを開き、siteurlなどを検索して復旧したいDBかどうか確認します。
WordPressをインストール
sqlファイルを開いてsiteurlを確認したときのURLと同じようになるように、Wordpressを新規インストールします。
そうすることで、新規のDBができます。
WordPressの新DBへsqlファイルをインポート
DBのインポートは、SSH経由で行います。
mysql -h localhost -u username -p database_name < filename.sql
DBをインポートすれば、ひとまずサイトは表示できそうに思います。
しかし、表示できないケースがほとんどだと思います。理由は、テーマが無いからです。
管理画面にログインして、テーマを変更する必要があります。
phpMyAdminなどでwp_usersのパスワードを書き換える
これは必須ではないですが、旧Wordpressのログイン情報が不明な場合は、wp_usersのテーブルを編集して、直接パスワードを書き換えます。
WordPressの管理画面にアクセス
管理画面にログインすると、DBの更新やらメールアドレスの確認などがあり、管理画面にログインできるようになります。
テーマファイルを変更
存在しないテーマファイルを見に行っているとサイトが表示されないので、Wordpressの初期テーマに切り替えます。
外観⇒テーマと進んで変更します。
これでサイトが表示できるようになりました。
DBをそのまま復旧してるのでカスタマイザーの設定はそのまま復活します。
テーマファイルを直接編集してカスタマイズしている場合は、その部分は復活しません。
プラグイン一覧で不足しているプラグインを確認
管理画面のプラグイン一覧に行くと、不足しているプラグインが表示されます。
そのプラグインを新規追加していけば設定を含めて復活します。
プラグイン backwpup/backwpup.php はエラーにより停止しました: プラグインファイルが存在しません。 プラグイン classic-editor/classic-editor.php はエラーにより停止しました: プラグインファイルが存在しません。 プラグイン customizer-export-import/customizer-export-import.php はエラーにより停止しました: プラグインファイルが存在しません。 プラグイン google-sitemap-generator/sitemap.php はエラーにより停止しました: プラグインファイルが存在しません。 プラグイン push7/push7.php はエラーにより停止しました: プラグインファイルが存在しません。 プラグイン wp-multibyte-patch/wp-multibyte-patch.php はエラーにより停止しました: プラグインファイルが存在しません。 プラグイン wp-super-cache/wp-cache.php はエラーにより停止しました: プラグインファイルが存在しません。
まとめ
数年にも及ぶブログ記事があるサイトがマルウェア感染し、よく考えずに対処し、その後放置してしまったので、Xserverの有料バックアップにもデータが無い状況でした。
しかし、画像やカスタマイズしたファイル以外はすべて復活できます。
そんな時には今回の手順でブログ記事だけでも復活することができますので参考にしてみてください。