KUSANAGI環境のWordPressを移行してみたら簡単だった

記事内に広告が含まれています。

VPSの移動だったりOSやKUSANAGIのVerUPなどで現状のKUSANAGI環境で動作しているWordPressを移動する必要が出てきますが、初めてだと難しいかなと躊躇してしまいますが、やってみると案外簡単です。
KUSANAGI8以降はmigrateコマンドが実装されているのでこれを使って移行します。
KUSANAGI8はexportのみでimportはできないので移行先はKUSANAGI9になります。

kusanagi migrateコマンドで移行できるのは以下の内容です。

  • プロファイル (/home/kusanagi/プロファイル) 配下のディレクトリとファイル
  • プロファイルのデータベース (MariaDBのみ)
  • プロファイルの設定 (FQDN、DB名、DBユーザ、DBパスワードなど)
  • SSL証明書 (※KUSANAGI 8 は 8.7.9 以降、 KUSANAGI 9 は 9.2.16 以降)

KUSANAGI環境移行の流れ

注意点

  • 現状の環境と移行先の環境(PHP/MariaDBのVer)を確認する
  • Verが異なる場合は移行先に合わせて移行元のPHP/MariaDBの更新をして動作確認
  • Let’s Encrypt SSL証明書を利用している場合は移行元の自動更新を停止して移行先で自動更新を有効にする

移行元をアップデートを行い最新の状態にする

KUSANAGI8

yum update --enablerepo=remi,remi-php56 kusanagi restart

KUSANAGI9

dnf update kusanagi restart

アップデートでエラーが出なければ最新になっています。

ミドルウェアのバージョンを合わせる

移行元と移行先のPHPとMariaDBのバージョンを合わせます。
PHP7.4、8.0はEOLですので運用上問題がなければ8.1以降で揃えます。(PHP7.4、8.0も今の所運用は可能なようです)

PHP7.4を使用する場合

KUSANAGI8
kusanagi php7
KUSANAGI9
kusanagi php --use php74

PHP8.0を使用する場合

KUSANAGI8
kusanagi php8
KUSANAGI9
kusanagi php --use php80

MariaDBは10.5で揃えます。

10.5以前のバージョンを使っている場合はアップデート

KUSANAGI8
kusanagi upgrade mariadb 10.5
KUSANAGI9
kusanagi upgrade mariadb --use mariadb10.5

ここまでで移行元環境が正常に動作するか確認します。

移行元でエクスポートを行う

KUSANAGI migrateコマンドを実行するとプロファイル (/home/kusanagi/プロファイル)以下の全てのディレクトリとファイルをエクスポートされます。
作業ディレクトリやファイルやバックアップ、ログファイルなど移行が不要なディレクトリやファイルが存在する場合はプロファイルとは別のディレクトリに移動するか不要であれば削除しておくとエクスポートファイルのサイズが小さくなります。
準備ができたらサイトはメンテナンス中などにしておきます。
エクスポート中やエクスポート後にされた更新は移行に反映されないため。

kusanagi migrate --export プロファイル

migrate –exportコマンドが正常に終了すると/home/kusanagi配下に【プロファイル-日付.tar.gz】ファイルが作成されます。
複数のプロファイルがある場合はそれぞれ実行します。
エクスポートされたファイル【プロファイル-日付.tar.gz】をscpやsftpを使って移行先に転送します。

移行先でインポートを行う

移行先ではkusanagi initまで済ませておきます。

dnf update kusanagi init --passwd kusanagiユーザのパスワード --nophrase --dbrootpass DBのrootパスワード --php81 --mariadb10.5

KUSANAGIの初期設定が完了したらkusanagi migrateコマンドでインポートします。

kusanagi migrate --import プロファイル-日付.tar.gz

コマンドが正常に終了すると /home/kusanagi/プロファイル配下にデータが配置されます。

Nginx/Apache httpdの設定ファイルを変更している場合は反映されません。
/home/kusanagi/プロファイル/confの移行元ファイルを確認してください。
cronなどOSに行っていた設定は移行されません。
Let’s Encrypt SSL証明書を利用している場合は移行元の自動更新を停止して移行先で kusanagi ssl –email コマンドを実行して自動更新を有効にします。
サーバのIPアドレスを変更するまではコマンドを実行できないので注意してください。
DNSレコードを移行先のサーバのIPアドレスに書き換える前にクライアント側のhostsファイルを書き換えてWordPressが正常に動作するか確認します。

移行完了

正常に表示されてWordPressの動作も問題なければDNSのレコードを移行先のサーバのIPアドレスに書き換えます。
Let’s Encrypt SSL証明書を利用している場合はDNSのIPアドレス書き換え後にkusanagi ssl –emailコマンドでLet’s Encrypt SSL証明書を再設定します。
サーバOSに設定していたcronなどの設定やpostfixなどの設定を行い完了です。

コメント