今まで使っていたサイトの反応が遅くなって来ており、編集中に(外部からアクセスして下さっている方に)5xxエラーが時々出るようになったため、テスト用のIPアドレスとFQDNを準備し、KUSANAGIへの移行手順テストを先日行いました(これを受けて、6/21に本番移行しています)。
基本的な手順は、『ぼっちサーファーのブログ 複数のWordPressをKUSANAGI for さくらのVPSに移行する手順 まとめ』を参考にしています。
※2019年06月時点での情報となります
事前に用意する物
- https://import.wp-migration.com/all-in-one-wp-migration-file-extension.zip
コンテンツの移行に使いますので、予めダウンロードしておいて下さい。 - kusanagiユーザー用のパスワード
- MySQL(MariaDB)のrootパスワード
- 既設WowdPress実行環境のPHPバージョン
可能な限り、既設WowdPress実行環境のPHPは7.2に上げておいて下さい - データベース名
仮の物でも構いませんが、本番と同じ名前でも構いません - データベースのユーザー名
仮の物でも構いませんが、本番と同じ名前でも構いません - データベースユーザーのパスワード
仮の物でも構いませんが、本番と同じ名前でも構いません - WordPressユーザー名
仮の物でも構いませんが、本番と同じ名前でも構いません - WordPressユーザーのパスワード
仮の物でも構いませんが、本番と同じ名前でも構いません - 移行対象サイト名(FQDN)
- プロファイル名
何でも可 - テスト用のサイト名
移行対象サイトとは別なFQDN - テスト用サイトのIPアドレス
移行対象サイトとは別なアドレス
DNSにも正引き登録しておいて下さい - 移行対象サイトのフルバックアップ
プラグイン『All-in-One WP Migration』をインストールし、有効化、エクスポートして手元にダウンロードしておいて下さい - SSL証明書登録用のメールアドレス
環境作成
root環境で行います。
公式の手順に従い、適当なサービス上に環境を展開しておきます。
https://kusanagi.tokyo/cloud/
OSの初期設定
タイムゾーンがJSTでない場合
timedatectl set-timezone Asia/Tokyo
swap領域が取られていない場合(freeコマンドで確認)
dd if=/dev/zero of=/swapfile bs=1M count=4096 chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
KUSANAGIの初期設定
yum --enablerepo=remi,remi-php56 update -y reboot kusanagi init --tz tokyo --lang ja --keyboard ja --passwd 'kusanagiユーザーのパスワード' --nophrase --dbrootpass 'MySQL(MariaDB)のrootパスワード' --nginx --ruby24 --dbsystem mariadb # 途中でPHPのバージョンを聞かれますので答えて下さい
KUSANAGIのプロビジョニング
- hostsでサイト名をテスト用サイトのIPアドレスにリダイレクトさせます
例として、移行前のサイト名をfoo.bar.com、テスト用のIPアドレスを123.123.123.123とします
# C:\Windows\System32\drivers\etc\hostsに追加 foo.bar.com 123.123.123.123
- (出来れば)ブラウザのクッキーやキャッシュを削除します
- kisanagiのプロビジョニングを行います
kusanagi provision --WordPress --wplang ja --fqdn サイト名(FQDN) --noemail --dbname データベース名 --dbuser データベースのユーザー名 --dbpass 'データベースユーザーのパスワード' プロファイル名
- ブラウザで移行対象サイトに接続し、WordPressの初期設定を行います
各パラメータは事前に決めておいた物を入れておいて下さい
テーブル接頭辞はそのままで構いません
データ移行
- wp-config.phpにFTPパスワードを設定します
vi /home/kusanagi/プロファイル名/DocumentRoot/wp-config.php # #define('FTP_PASS','*****'); # ↓ define('FTP_PASS','kusanagiユーザー用のパスワード');
- プラグイン『All-in-One WP Migration』をインストール→有効化
- ダウンロードしておいたall-in-one-wp-migration-file-extension.zipをプラグインとしてアップロード→インストール→有効化
-
cd /home/kusanagi/プロファイル名 chmod 777 -R DocumentRoot
- All-in-One WP Migrationでデータをインポートします
インポート完了時に、『パーマリンク構造を保存する』をクリックします
変更を保存をクリックします(設定の保存が行われます)
変更を保存をクリックします(パーマリンク構造の更新が実行されます)
※認証画面に差し戻された場合、再度認証して下さい
※どうしても駄目なときは、次のサイトFQDN変更ののち、パーマリンク構造を元のサイトのものに合わせて下さい
サイトのFQDNを変更
kusanagi setting --fqdn テスト用のサイト名 プロファイル名 kusanagi ssl --https noredirect プロファイル名 # 次の2行は(kusanagi setting で変更済みの筈ですが)念のため wp search-replace 'http://サイト名' 'http://テスト用のサイト名' --path=/home/kusanagi/プロファイル名/DocumentRoot/ wp search-replace 'https://サイト名' 'https://テスト用のサイト名' --path=/home/kusanagi/プロファイル名/DocumentRoot/
アクセステスト
- hostsのリダイレクト設定を削除します
- ブラウザからテスト用サイト名でアクセステスト
SSL証明書の設定
kusanagi ssl --email SSL証明書登録用のメールアドレス プロファイル名 kusanagi ssl --https redirect プロファイル名
セキュリティ警告への対応
cd /home/kusanagi/プロファイル名 chmod 440 DocumentRoot/wp-config.php chown kusanagi:www DocumentRoot/wp-config.php chmod -R 755 DocumentRoot/wp-content mv DocumentRoot/wp-config.php ./
firewalldが動いていてsshを違うポートに変更する場合
# sshの待ち受けを22/tcpから12345/tcpに変更 # /etc/ssh/sshd_config は変更済で、sshdはリロード済みなこと # 定義の確認 firewall-cmd --info-service=ssh # 12345/tcp追加 firewall-cmd --permanent --service=ssh --add-port=12345/tcp # 定義読み込み firewall-cmd --reload # 定義の確認 firewall-cmd --info-service=ssh # 22/tcp削除 firewall-cmd --permanent --service=ssh --remove-port=22/tcp # 定義読み込み firewall-cmd --reload # 定義の確認 firewall-cmd --info-service=ssh