なぜにぶろぐのサーバを移設しました

こんにちは、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ライフを!