【WordPress】ブログデータのリストア

WordPressを使って運用しているブログのデータが何らかの理由で壊れてしまったとしてもバックアップがあればリストアすることができます。
バックアップを取得した時点の状態になるので壊れた瞬間と全く同じ状態とはなりませんが完全にデータがなくなってしまうよりははるかにましだと思います。

リストアする手段はいくつかあるのですが、今回はサーバーにログインしてリストアする手順を記事にしたいと思います。

バックアップの取得についてはこちらの記事をご覧ください。

関連記事

WordPressを使ってブログを運用している皆さんはブログデータのバックアップはどうしていますでしょうか。 自動的にバックアップを取ってくれるプラグインを使っています 気が向いたときに、バックア[…]

当記事においては上記記事の手順で取得したバックアップを使ってリストアします。

ファイルやディレクトリの削除と上書きを伴う作業です。
実施の際には十分に注意し、自己責任にてお願いします。

前提条件

  • SSHログインもしくはサーバーコントロールパネルなどに実装されているコンソールからサーバーにログインできること
  • CLIに慣れていること

バックアップファイルをサーバーにコピー

scpコマンドやファイル転送ソフトなどを使ってサーバーにバックアップファイルをコピーします。
ちなみに私は普段Macを使っているのですが、ファイル転送ソフトは「Transmit」を使っています。

適当な作業用ディレクトリを作ってそこにコピーするのがいいと思います。

ファイルのリストアのコマンド例

対象となるディレクトリをtarコマンドでアーカイブしてgzip形式で圧縮したファイル(拡張子はtar.gz)を展開します。
当該ファイルは「backup.tar.gz」とし、展開後に作成されるディレクトリは「wordpress」とします。

sudo tar -xzvpf backup.tar.gz # パーミッション情報やタイムスタンプも復元する場合
tar -xzvf backup.tar.gz # sudoコマンドが使えない場合

壊れてしまったWordPress用のディレクトリを削除します。
当該ディレクトリは「/var/www/wordpress」とします。

sudo rm -rf /var/www/wordpress

展開したディレクトリを移動します。

sudo mv wordpress /var/www

以上でファイルのリストアは完了です。

データベースのリストアのコマンド例

壊れてしまったデータベースを削除します。
当該データベースの接続情報については、ユーザー名は「blog」、パスワードは「blogpass」、データベース名は「wpdb」とします。

mysql -u blog -p blogpass
drop database wpdb;

権限の関係で削除できなかった場合はrootなどの管理ユーザーでログインしてください。

mysqldumpコマンドで取得したバックアップからデータベースをリストアします。
バックアップファイルは「wpdb.sql」とします。

mysql -u blog -p blogpass < wpdb.sql

以上でデータベースのリストアは完了です。


まとめ

バックアップさえあればそれほど手間をかけることなくリストアすることができます。
万が一の時に備えてテスト環境などで練習しておくのがいいと思います。