このブログはServersman@VPSで稼働しているが、もしVPSで再セットアップをしなければならない状況になった場合のため
WordPressリストアのリハーサルを行った。
環境 CentOS 6.4
やること
Apache PHP MySQLのインストール
MySQLのリストア
WordPressのリストア
はじめに
VirtualBoxでCentOS 6.4の環境を用意。
SSHで接続できるようにする。
ココらへんの手順は割愛。
バックアップ
バックアップはCrontabで毎夜実行している。
やっていることはMySQLのデータベース単位のバックアップと、ApacheのDocumentRootディレクトリのコピー
MySQLにはWordpressのデータベースと、個人的に使っているデータベースの2つがある。
だが、全部バックアップすればいいと思ったので、今回からフルバックアップすることにした。
でも、一応何か有った時のためにデータベース単位のバックアップもしておこう。
以下に例をしめす。
パスワードはすべてhoge
データベースはwordpressとmydb それぞれのユーザーはmydbusr 、 wpusrとする。
あとドキュメントルートの圧縮は最後の行
#MySQLフルバックアップ mysqldump -u root -phoge -x --all-databases --opt | gzip > ./fullmysqlbk.dmp.gz #MySQLデータベース単位のバックアップ mysqldump mydb -u mydbusr -phoge --opt | gzip > ./mydb.dmp.gz mysqldump wordpress -u wpusr -phoge --opt | gzip > ./wp.dmp.gz #ドキュメントルートのバックアップ tar zcvf ./docroot.tar.gz /var/www/html/
これらの処理を実行する。
ちなみに、ダンプファイルは即時圧縮している。
移行先の環境を構築
次に新しく作ったCentOS環境にうつる。
まずはインストール
yum -y install httpd php mysql-server php-mysql
インストール後、MySQLの文字コードの設定を行う。
/etc/my.cnfという設定ファイルをvimか何かで編集する。
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
character-set-serverというパラメータを[mysqld]や[client]と書かれている部分の下に書き入れる。なければ追記。
以下のコマンドでmysqlを起動
/etc/init.d/mysqld start
先ほど、稼働しているサーバーで取得したフルダンプを持ってきて、解凍する。
解凍したファイル名はfulmysqlbk.dmpとする。
以下のように実行するとダンプからすべてリストアされる。
パスワードを聞かれたらそのままエンターを押す。(初期パスワードは空欄だから。)
mysql -u root -p < fullmysqlbk.dmp
リストアの確認
さてバックアップがリストアされたか確認しよう。
MySQLにログインして見よう。
mysql -u root -p
そのあとは
show databases;
select user,host from mysql.user;
でデータベースとユーザーがちゃんと移行されているか確認。
flush privileges;
を実行すると権限がリロードされて、リストアされた状態になる。
一度MySQLを抜けて、再度移転元のMySQLのroot権限とパスワードでログインをしてみよう。
ちゃんとログインできるはずだ。
これでMySQLは完了
WordPressディレクトリを戻し、WordPressの設定を行う
移転先のサーバーのドキュメントルートをまずは削除する。
その上で移転元で圧縮バックアップしたドキュメントルートのディレクトリを配置する。
その後、ユーザーとグループをapacheに変更。
rm -rf /var/www/html/ mv html/ /var/www/ chown -R apache:apache /var/www/html/
そのあと、/etc/php.ini
というファイルの中に以下の文字列がコメントアウトされているとおもうので、ソレを解除して有効にする。
extension=mysql.so
Apacheの起動とその後
今までの処理で移行は完了した。
httpdを起動してみる。
ただし、ローカルのIPで直接ページを参照すると見れない場合があるので
/etc/hostsファイルに glorificatio.orgのドメインの宛先をローカルのCentOSにして、検証を行った。
結果、ちゃんと見ることはできた。
が、ソレはトップページだけだった…
他のページをみようとすると404エラーが出る。。。
色々調べた結果以下のリンク先の設定を行うと解決をした。
http://www.adminweb.jp/wordpress/permalink/index2.html
つまりApacheの設定が不十分であった。
もちろん、このブログを作った時にはやった設定なのだろうが、もう一度設定し直すのは時間がかかる。
移行するものににhttpd.confファイルも含めることにしよう。
なんだかんだで、その設定を行ったら現状のWordpressと同じモノを見ることができた。
ちゃんと違う環境なのかを確認するために、移転先のWordPressで適当な記事を投稿。
このVPSにあるWordPressは全く何も変化していないことから、コピーが成功したことを確認できた。
今回はMySQLのリストアと、WordPressのディレクトリの移行だけだったが
Apacheの設定ファイルもないと二度手間になるし、
その他にもIPTABLESの設定なども持ってこないとやることが増えてしまう。
まあ、やるべきことがわかったのでリハーサルをやってよかった。