WordPressのリストアの練習をしてみた。別のCentOS環境へWordPressを丸々コピー

このブログは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の設定なども持ってこないとやることが増えてしまう。

まあ、やるべきことがわかったのでリハーサルをやってよかった。

 

 

スポンサードリンク

関連コンテンツ