かれこれ5年ほどConoHa VPSのKUSANAGIを利用していたのですが、プラグインの更新にはPHPのバージョンアップが必要になることが多くなっていました。
セキュリティの脆弱性のことを考えると絶対にWordPressのプラグインやテーマは最新版にしていたいので、そのうち更新しなくてはならないとは思っている状態でした。
さらに追い打ちをかけたのがConoHaVPSがサービスリニューアルに伴いバージョン2.0から3.0が追加され、移行には新規でVPSを立ち上げて(契約して)移行する必要がありました。
本記事ではConoHa VPS Ver3.0〜さくらVPSへ移転した経緯と稼働中のサイトをなるべく止めずに移行した内容を記録しておこうと思います。
- WordPressの移転方法
- KUSANAGIのセットアップ方法
- 稼働中のサイトをなるべく止めずに移転する方法
ConoHa VPS Ver3.0を試用
元々は前述した通り、PHPのバージョンアップをしてWordPressのアップデートをしたいだけでした。
しかし、CentOSを利用していたので、強引にyumでアップデートしたとしても多少の時間を引き伸ばすだけ。OS自体も変更したい&Kusanagiも8から9にアップデートされていたため新しく入れ直すほうが良さそうな印象でした。
まずはConoHa VPS Ver3.0で新規VPSの追加。アプリケーションテンプレート、かんたんKUSANAGI(KUSANAGI manager)を選択してインストール。
KUSANAGIの推奨メモリは4GBですが、コストの都合で2GBでインストールしてたのですが何もかも激重。
数回やり直しましたが、KUSANAGI manager自体のレスポンスが悪すぎてまったく進まず。埒が明かないため他のサーバーにすることにしました。
さくらVPSのKUSANAGI

画像引用:さくらVPS提供OS一覧
さくらVPSもKUSANAGI9が標準OSインストールイメージとして提供されています。本当はAlmaLinuxでインストールをしたかったのですが、贅沢を言ってられないのでこちらにします。

Kusanagiのインストール・初期設定
##インストール後(KUSANAGIのアップデート)
sudo yum update kusanagi -y
##リポジトリのアップデート
sudo yum --enablerepo=remi,epel update -y
##再起動
reboot
##KUSANAGI初期設定(※Nginx1.27、PHP8.3、MariaDB10.6の指定です)
kusanagi init --passwd "{パスワード}" --nophrase --dbrootpass "{DBパスワード}!" --nginx127 --php83 --mariadb10.6
最初にシステムのアップデートを反映してから、初期設定をします。
kusanagi initのオプションはいろいろあるので公式サイトの「KUSANAGIの初期設定」を参考にします。
バックアップの準備
あらかじめ、元のサーバーからwp-config.phpファイルとwp-content/uploads、wp-content/plugins、wp-content/themesファイルはバックアップしておきます。
長く運営していたブログだとファイルが多くなっているので、各種ファイル類はtar.gzで固めてローカルに保存。databaseもdbごとバックアップを取っておきます。
##ファイルのバックアップ(/home/kusanagi/hoge/にインストールされている場合)
tar cvzf hogebackup.tar.gz /home/kusanagi/hoge/DocumentRoot/wp-content/plugins /home/kusanagi/hoge/DocumentRoot/wp-content/themes /home/kusanagi/hoge/DocumentRoot/wp-content/uploads /home/kusanagi/hoge/wp-config.php
##DBのバックアップ
mysqldump --single-transaction -u {ユーザー名} -p {DB名} | gzip > db_backup.dump.gz
mysqldumpのオプションについては、このあたりを参考にしました。
あるサイトはキャッシュが膨大でインポートエラーが頻発したため、その場合はキャッシュだけはずしてエクスポートしました。
##DBのバックアップ(wp_site_cacheを除いてバックアップ}
mysqldump --single-transaction -u {ユーザー名} -p {DB名} --ignore-table={DB名}.wp_site_cache | gzip > db_backup.nocache.dump.gz
バックアップが完了したら、FTPなどでファイルをダウンロードしておきます。
プロファイルの作成と復元
次に新サーバーのセットアップです。
##KUSANAGIのセットアップ
kusanagi provision --wp --fqdn {ドメイン} --noemail --adminemail {メールアドレス} "{プロファイル名}" --dbname {DB名}
Provisionのオプションは公式サイトのProvisionを参考にします。
新サイトの場合は、同時にSSLの設定もしますが今回は稼働中のサイトを移転するため、まだDNS変更をしていないので「-noemail」にします。
なお「www」付きの運用サイトは–with-wwwオプションを付与しました。
設定したサイトにアクセスできるようにhostsを変更します
##mac コンソールを開き
sudo vi /etc/hosts
サーバーのIPアドレス 設定したドメイン
#例)IPが111.111.111.111でsample.comの場合
111.111.111.111 sample.com
##Windowsはメモ帳でC:\windows\system32\drivers\etc\hostsを開く
hosts設定をすると、新しいサーバーで設定したサイトにアクセスできるようになります。
動作確認後、新しいデータベースに今までのデータベースをインポートするために一度削除します。
##データベースを一度削除、作り直し、インポート
##database名をwordpress、バックアップファイルをdb_backup.dumpとします
mysql -u root -p
DROP DATABASE wordpress;
CREATE DATABASE wordpress default character set utf8;
quit
##インポート
mysql -u root wordpress < db_backup.dump
##元ディレクトリを回避
mv /home/kusanagi/hoge/DocumentRoot/wp-content/uploads /home/kusanagi/hoge/DocumentRoot/wp-content/uploads_
mv /home/kusanagi/hoge/DocumentRoot/wp-content/themes /home/kusanagi/hoge/DocumentRoot/wp-content/themes_
##バックアップを移動
##バックアップファイルが/tmp/backup/hoge/に展開したとします
mv /tmp/backup/hoge/DocumentRoot/wp-content/themes /home/kusanagi/hoge/DocumentRoot/wp-content/themes
mv /tmp/backup/hoge/DocumentRoot/wp-content/uploads /home/kusanagi/hoge/DocumentRoot/wp-content/uploads
##パーミッション変更
chown -R httpd:www /home/kusanagi/hoge/DocumentRoot/wp-content/themes
chown -R httpd:www /home/kusanagi/hoge/DocumentRoot/wp-content/uploads
DBのインポート、ファイルを戻してwp-adminにアクセスすると「データベースの更新が必要です」と表示されるので、更新します。
その後、ログインをして表示確認をします。
なお、今まで使っていたバージョンが低いと動作しないプラグインやテーマがある場合があります。そのため、プラグインはファイル名を見ながら改めてwp-adminから入れました。
DNS設定とSSL設定
動作確認をして問題なければ、DNS設定を変更します。(Value Domain)
ConoHaのときはConoHaのネームサーバーを使っていましたので、DNS設定を新しいサーバーに変更後、Value Domainのネームサーバーに変更します。
ローカル環境のhosts設定を削除して、新サーバーに変わるのを待ちます。アクセスできるようになるとSSLの設定が完了してないため「この接続ではプライバシーが保護されません」となります。
DNSが反映されましたらSSLの設定です。
##Let’s Encrypt設定
kusanagi ssl --email {メールアドレス} {プロファイル名}
##メールアドレスがhoge@example.com プロファイル名がwp_hogeだった場合
kusanagi ssl --email hoge@example.com wp_hoge
##SSL自動更新設定
kusanagi ssl --auto on wp_hoge
##リダイレクト設定
kusanagi ssl --https redirect wp_hoge
これで元通り、アクセスできるか確認します。
プラグインの登録と、設定 -> パーマリンク設定を「変更を保存」で移転完了です。
このほかfcacheやbcacheなど適宜設定してみてください。
まとめ
以上ConoHaVPSからさくらVPSへ移転、KUSANAGI9.0を導入した手順について紹介しました。
一番の注意点としては、themesやpluginsの内容によってはエラーで表示されない場合があることです。
ページが真っ白もしくはエラー表示されたときは慌てずに、wp-config.phpのWP_DEBUGをtrueにして原因を特定して解決してください。
メジャーなプラグインでもPHP8.Xにするとエラーが大量に表示される場合がありますが、冷静に対応しましょう。
メールサーバーはpostfixやspf、DKIMの設定が面倒でしたので今回はさくらインターネットのレンタルサーバーを利用しました。こちらの手順については以下の記事で紹介しています。
\ まずは2週間無料お試し /
SSDプランが月々698円から