なぜにぶろぐのサーバを移設しました
こんにちは、whywriteitサーバ管理班のwhywaitaです。
この度本ブログ なぜにぶろぐ のサーバ移設を行いましたので、その手順を纏めておきます。
(将来の自分向けのドキュメントともなります…)
環境
前提
- ドメイン変更無し
- WordPressなど、各種パスワードの変更なし
- サーバ1台構成から1台構成へのマイグレーション
- 移行中に閲覧するアクセスあり
- ダウンタイム0を目指す
- 移行中に記事更新などのアクセスはなし
前環境
- kusanagi Version 7.8.3
- CentOS7.2
後環境
- kusanagi Version 7.8.1 (さくらのクラウドアーカイブの為少し古いのです)
- CentOS Linux release 7.2.1511 (Core)
基本的には同じkusanagi 7系へのマイグレーションとなります。
手順
MySQL ダンプファイルを取得する (旧サーバ)
旧サーバにて mysqldump
コマンドを用いてdumpファイルを取得します。
$ mysqldump --default-character-set=binary -u mysqluser -p blog.whywrite.it > blog.whywrite.it-20160809.sql
新規サーバを立ち上げる
さくらのクラウドなどで新しいサーバを用意しましょう。
kusanagiコマンドにて初期設定、プロビジョニングする (新サーバ)
kusanagiドキュメント を参照しつつ初期設定を済ませます。
# kusanagi init
# kusanagi provision blog.whywrite.it
旧サーバのファイルを送る
旧サーバ上にあるWordPress関連ファイルをscpコマンドで送信します。
旧サーバにて
$ scp -r /home/kusanagi/blog.whywrite.it/* kusanagi@NEW-SERVER:/home/kusanagi/blog.whywrite.it/
$ scp blog.whywrite.it-20160809.sql kusanagi@NEW-SERVER:
新サーバにて正常にコピー出来ているか確認しましょう。
新サーバにて
$ ls -l
total 5336
drwxr-xr-x 6 kusanagi kusanagi 4096 Aug 9 23:26 blog.whywrite.it
-rw-r--r-- 1 kusanagi kusanagi 5459018 Aug 9 23:19 blog.whywrite.it.sql-20160809
MySQL ダンプファイルをリストアする (新サーバ)
$ mysql -uroot -p blog.whywrite.it < blog.whywrite.it.sql-20160809
kusanagi provision
コマンドにてDB自体は既に作成されているので、そのままリストアして問題無いです。
SSL証明書発行 (新サーバ)
kusanagiにはLet’s Encryptを用いてSSL化が簡単にできるような機構が用意されています。利用しましょう。
# kusanagi ssl --email email@example.com blog.whywrite.it
# kusanagi https redirect
# kusanagi autorenewal on
kusanagiサーバを調整 (新サーバ)
権限設定などが間違っている場合は kusanagi configure
が便利です。何か設定したら打つぐらいで良いと思われます。
# kusanagi configure
もしWebサーバ(私の場合Nginx)やDBサーバ(MariaDBサーバ)が立ち上がっていなければ起動しておきましょう。
# kusanagi nginx
# systemctl start mysql
# systemctl enable mysql
DNS設定変更
旧サーバから新サーバへ、DNSの向き先を変更します。
自分でホスティングされているDNS権威サーバや、ドメイン取得先のコントロールパネル、DNSホスティングサービスなど、自分が利用しているところで設定を変更して下さい。
表示確認
DNSから新サーバのIPが返ってくるようになったら、旧サーバをシャットダウンし、動作に不調が無いか、表示に不調は無いか確認してみましょう。
もし問題が無ければ、移設は終了です。
終わりに
WordPressの移設で検索すると、レンタルサーバ上で行う物などが多くヒットするため、今回はコマンドライン上で行える物をピックアップしてみました。
今回はkusanagi上での移設でしたが、通常のWordPressやAMIMOTOなどでも適用出来る手順であると考えています。
kusanagi は本当に素晴らしいプロダクトで、毎回さくらのクラウド上で利用させて頂いております(さくらのクラウドも、さくらインターネット様から頂いたクーポンにて運用しております!)。この場を借りて感謝申し上げます。
先日、kusanagi RoD(Runs on Docker)が発表され、今回の更新ではこちらを利用してみようかとも思ったのですが、残念ながらLet’s Encryptの更新にはまだ対応していないとの事で見送りました。もう暫くはさくらのクラウド上にて運用されると思われます。
kusanagiは運用が非常に便利なプロダクトなので、個人的に応援していきたいと思います。
皆様、良いWordPressライフを!