BackWPupでWordPressブログの全てをリストアした
この記事の所要時間:約7分38秒
サーバの再構築をした関係で、WordPressブログ(このブログ)の移動をしたのでその時のログ。以下のようなところを参考にさせていただいた。
http://did2memo.net/2013/04/19/how-to-use-backwpup3-backup-and-restore/
BackWPupでWordPressの毎日のバックアップをとっていたので、それを使ってリストアする。BackWPupはブログ内のあらゆるファイルとMySQL内のデータベース、つまり全てをバックアップしてくれるツール。今回やってみてリストアも非常に簡単にできることがわかった。Apacheの設定はきちんとできているものとする。
移転先サーバにPHP、MySQLをインストール
まずこいつらがないと始まらない。これらを連携するphp-mysqlも必須。
# yum install php mysql php-mysql
PHP単体はOSにデフォルトで入っていたような気がしたが、よく覚えていない。本来ならば以前のサーバに入っていたphp関連のパッケージは覚えておいたほうがよかったのかもしれない。
すぐ次にMySQLを起動して、MySQLのルートアカウントとパスワードを設定する。mysqldも、自動起動にしておく。
# service start mysqld (中略。初回起動だいろいろと出てくる) mysqld を起動中: [ OK ] # chkconfig mysqld on # mysqladmin -u root password (設定するパスワード)
MySQLで専用のユーザ・データベースを作成
0からインストールする場合と同様に、MySQLの環境を整える。ここと全く同じ。ここではデータベースの名前とユーザの名前をどちらも”wordpress”とし、そのパスワードを”password”とした。
ここで作成するデータベースやユーザは、リストアする前のデータベース名と同じでなくても構わない。あとでwp-config.phpの設定をする。
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5340 to server version: 3.23.54 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE wordpress; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress"@"localhost" -> IDENTIFIED BY "password"; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye
できたか確かめたければshow databases;
やuse wordpress; show tables;
とすればよい。
ディレクトリの設置・データベースの読み込み
まずBackWPupでバックアップされた.tar.gzファイルを展開すると、wordpressブログのすべてのファイルと.pluginlistファイル、wordpress.sqlファイルが入ったディレクトリができる。前者はプラグインのリスト。プラグインのファイルそのものの移動は上手くいかないことが多いらしいからリストにしてあるんだろう。wordpress.sqlはデータベースのバックアップそのものだと考えて良い。
このディレクトリを、ブログを設置したいディレクトリ(Apacheのルートとか)にそのままごっそり置く。
次に、MySQLにバックアップされたデータベースを読み込ませる。
mysql> source wordpress.sql;
最後に、wp-config.phpファイルを編集する。編集するのは以下の部分。先ほどMySQLで設定したデータベース名やパスワードを全て入力する。
// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('WP_CACHE', true); //Added by WP-Cache Manager define('DB_NAME', 'wordpress_database_name'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'mysql_user_name'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'mysql_user_password'); /** MySQL のホスト名 */ define('DB_HOST', 'mysql999.db.sakura.ne.jp'); /** データベースのテーブルを作成する際のデータベースのキャラクターセット */ define('DB_CHARSET', 'utf8'); /** データベースの照合順序 (ほとんどの場合変更する必要はありません) */ define('DB_COLLATE', '');
これで何も問題がなければ、WordPressブログにブラウザでアクセスすると移転前と全く同じように表示される。
私の場合、はじめは個別記事が全く表示されない状態になってしまってかなり焦った。でもプラグインを全て停止させたらきちんと表示されるようになり、改めて一つずつ有効化していくと犯人はWP Multibyte Patchだと判明。phpのmbstringが入っていなかったらしい。yumで入れたら無事WP Myltibyte Patchが有効化できるようになり、完全に以前の状態に復帰した。結局環境が整っていなかったというだけで、バックアップ自体はきちんとされていて安心した。
わかったことは、BackWPupは非常によいということ。移転先の環境が適切に構築されていれば、基本的にディレクトリの移動とデータベースを記録したSQLファイルを読みこませるだけ。なかなかおすすめです。
[amazonjs asin=”4883377245″ locale=”JP” title=”WordPress レッスンブック 3.x対応”]
関連記事
-
USB外付けHDDをext4にフォーマットする手順
前エントリの玄人志向のHDDケースを買った。で出来上がった外付けHDDをフォーマットして、Cent
-
新サーバにMaildirディレクトリを移動させたときのトラブル
サーバを作りなおした件で、Postfix・Dovecotサーバもリストアしました。 新サーバで
-
外付けHDDを起動時に自動マウントする
前エントリでフォーマットからマウントまでやったが、自動マウントの設定を忘れていた
-
/tmpパーティションの領域の拡大をしてみる
今回拡大するのは/tmpパーティション。学校のデータベースの講義でDB2 express-cを使うか
-
NVR500にプロバイダの固定IPサービスを設定する手順
ついに私も、固定IPサービスを使うことにしました。ルータへの設定で若干詰まったのでメモ。自鯖
-
情報収集はとりあえずFeedlyとGunosyでいいと思った。あと新聞。
新聞の配信 / HIRAOKA,Yasunobu Googleリーダーが終了したり就活につ
-
Cent OSサーバを起動するたびにいろいろとプロセスがクラッシュする問題
いつからか、Cent OSサーバを再起動するたびに件名が" full clash repor
-
rsyncで毎日自動差分バックアップを構成
毎日の明け方に、外付けHDDにrsyncバックアップをするようにした。rsyncを実行するシェルスク
-
CakePHPディレクトリを他サーバに移転する際に困ったこと
まだ解決できていないが、CakePHPで作ったアプリケーションを別のレンタルサーバーに移転し
-
三日間のWebアプリのハッカソンに参加してきた
MacBook 2GHz / tkramer 3日間でウェブサービスを作る、学生向けの3日