現在利用しているレンタルサーバーからVPSへ移行してKUSANAGI を利用したい方向けの記事です。
私自身の環境での内容なので、不具合が発生する場合がありますので、必ずバックアップをしっかりとったあと自己責任で行ってください。
\ 700円クーポン付き! /
- 約1ヶ月無料で使おう
サーバー移転までの流れ
実行前にかならずバックアップ
コンテンツ、データベースバックアップ
ConoHa VPS で新規サーバーを作成します。スタートアップスクリプトを利用するので自動で新しいWordPressサイトが立ち上がります。
新規サーバーへコンテンツファイルをアップロードします。
WordPressデータベースを管理するphpMyAdminをインストール後、バックアップしたデータベースをインポートして復元します。
以前のサーバーで利用していたドメインをDNSレコードを編集してConoHa VPSの新サーバーへ向けます。
表示を確認して完了。
旧サーバーのWordPress のデータをバックアップ、エクスポート
バックアップの対象は以下です。
- WordPressのデータベーステーブル
- WordPressのコンテンツフォルダ
データベースのバックアップ
今回の方法は移行元でphpMyAdminが利用できる環境が必要です。
phpMyAdminにログインして該当のwordpressのテーブルをエクスポートします。

「xxx.sql」ファイルが作成されるのでデスクトップなどに保存します。
コンテンツフォルダのバックアップ
FTPソフトで、wordpressが入っているディレクトリの wp-content をまるごとデスクトップなどにダウンロードします。 ここにはWordPressのテーマ、プラグイン、画像などが含まれます。
基本的にはこの3つのフォルダだけですがその他に自分で追加したファイルなどがあればダウンロードしておきましょう。
FTPソフト Filezillaの場合
ユーザー kusanagi でログインします。
FTPでログインした後、WordPressのデータディレクトリを開いて、中の「wp-content」へ入ります。この中にコンテンツデータがあります。

「wp-content」内の3つのフォルダを選択して左側のウィンドウへドラッグアンドドロップしましょう。保存先はデスクトップが分かりやすいと思います。

このような感じでデスクトップにファイルがコピーしておきます。

KUSANAGI を ConoHa VPSに構築
このKUSANAGI + WordPress 自動構築スクリプトを利用してConoHa VPSで新規サーバーをセットアップします。
#!/bin/bash
yum update -y
mkp="mkpasswd -l 10 -s 0"
password=`$mkp`
passphrase=`$mkp`
dbpassword=`$mkp`
## OS and Network 設定
IPADDRESS=`curl globalip.me`
HOSTNAME=${IPADDRESS}
WWWUSER=httpd
## WordPress 設定
WPNAME=<span style="color: #ff0000;">auto</span>
WPLANG=ja
EMAIL='[email protected]'
WPTITLE=テストブログ
WPADMINNAME=testuser
WPADMINPASS=testtest
DBNAME=testdb
DBUSER=testdbuser
DBPASSWD=testdbtest
WPPLUGINS=("autoptimize" "wp-multibyte-patch" "search-regex")
expect -c "
set timeout -1
spawn kusanagi init --tz tokyo
--lang ja
--keyboard ja
--passwd $password
--phrase $passphrase
--dbrootpass $dbpassword
--nginx
--php7
--ruby24
expect "Which you using?(1):"
send "n"
expect "KUSANAGI initialization completed"
exit 0
"
cat << EOF >> /etc/motd
================================================
kusanagi user password : $password
kusanagi user passphrase: $passphrase
MySQL root password : $dbpassword
To delete this message: rm -f /etc/motd
================================================
EOF
# ホスト名を設定
hostnamectl set-hostname ${HOSTNAME}
kusanagi provision --WordPress --wplang ${WPLANG} --fqdn ${HOSTNAME} --email ${EMAIL} --dbname ${DBNAME} --dbuser ${DBUSER} --dbpass ${DBPASSWD} ${WPNAME}
systemctl start nginx
# WordPress Install and Basic Setting
WPHOST="/home/kusanagi/${WPNAME}"
WPROOT="${WPHOST}/DocumentRoot"
WPCONF=${WPROOT}/wp-config.php
WPCMD="/usr/local/bin/wp --path=${WPROOT}"
KUSANAGICMD='sudo -u kusanagi'
${KUSANAGICMD} ${WPCMD} core config --dbname=${DBNAME} --dbuser=${DBUSER} --dbpass=${DBPASSWD} --dbhost=localhost --locale=${WPLANG}
${KUSANAGICMD} ${WPCMD} core install --admin_user=${WPADMINNAME} --admin_password=${WPADMINPASS} --admin_email=${EMAIL} --url=http://${HOSTNAME}/ --title=${WPTITLE}
${KUSANAGICMD} chown kusanagi.www ${WPCONF}
${KUSANAGICMD} chmod 0440 ${WPCONF}
${KUSANAGICMD} echo "define('FS_METHOD', 'direct');" >> ${WPCONF}
${KUSANAGICMD} chmod 0755 ${WPROOT}
${KUSANAGICMD} mv ${WPCONF} ${WPHOST}
# WordPress Setting
${KUSANAGICMD} ${WPCMD} core update
${KUSANAGICMD} ${WPCMD} plugin update --all
${KUSANAGICMD} ${WPCMD} theme update --all
${KUSANAGICMD} ${WPCMD} core language update
## WordPress Plugin Setting
HTTPDCMD="sudo -u ${WWWUSER}"
chown httpd $WPROOT/wp-content/plugins
for i in "${WPPLUGINS[@]}"
do
${HTTPDCMD} ${WPCMD} plugin install $i --activate
done
## Cleanup default data of WordPress
${KUSANAGICMD} ${WPCMD} theme delete twentyseventeen twentysixteen
${KUSANAGICMD} ${WPCMD} plugin uninstall hello
このスクリプトはKUSANAGIの初期設定とWordPressの構築を自動で行います。また、テーマファイルを一つ残して削除し、プラグイン「wp-multibyte patch」と「serach regex」、「autoptimize」を自動で追加しています。
編集が必要な箇所は1ヶ所だけです。
修正箇所
## WordPress 設定
WPNAME=auto
この赤文字の部分はプロファイル名で、KUSANAGIのフォルダ名になるので分かりやすいものに変更しておきます。たとえば私のサイトであれば tabikumo.comとしておきます。
ユーザー名やパスワードは現在利用しているサーバーのものに置き換わるので、特に変更は不要です。
WPNAMEの編集が終わったら、ConoHaのサーバーを作成しましょう。
ConoHa VPS でサーバーを新規作成
まだ、ConoHaに登録していない場合はこちらから登録しましょう。
\ 700円クーポン付き! /
- 約1ヶ月無料で使おう
登録が済んだら、サーバーの新規作成画面に移動して自分のサイト規模に合ったプランを選択します。あとで変更できるのでまずはメモリ1GBから始めてみましょう。
- リージョン:東京
- サービス:VPS 1GB
- イメージタイプ: WordPress (KUSANAGI)
rootパスワード:複雑なものにしてメモしておく
ネームタグ:任意 (空欄でもOK)

下の方の「オプションを見る」をクリックしてオプションも設定します。
後にSSHで管理する時のために、SSH Keyを新規作成しておきます。作成後プライベートキー(xxxxx.pem)のダウンロードします。

スタートアップスクリプトに先ほど編集したスクリプトを全てコピーして、この欄に貼り付けます。

あとは、右側の「追加」ボタンを押すとサーバーの構築が開始されます。
およそ15分ほどで自動でセットアップが完了して、IPアドレスでブログへアクセスできるようになります。
サーバーの詳細画面でIPアドレスを確認してアクセスしてみます。
http://111.222.111.222/ など

正常に設定が完了するとWordPressの初期画面が表示されると思います。

旧サーバーのデータを新サーバーにコピー
バックアップしておいたコンテンツフォルダをFilezillaなどを使ってConoHa VPSの新サーバーへコピーします。
Filezillaでは「サイトマネージャー」を開いて下記のように設定します。ユーザー名は「kusanagi」でログインします。kusanagiのパスワードはコンソールでrootログイン後に確認できます。
ログイン後
/home/kusanagi/[プロファイル名]/DocumentRoot/wp-content/
このwp-content ディレクトリ内に3つのフォルダを転送します。
- plugins (プラグイン)
- themems (WordPressテーマ)
- uploads (画像ファイルなど)
これらをSFTPソフトのFilezillaを使って新サーバーの「wp-content」内にコピーしましょう。


上書き確認がある場合はスキップします。

※もしブログを表示した時正常に読み取りができないなどの不具合が発生した場合は、FFFTPやCyberduckなどのFTPを使ってみてください。
phpMyAdminをインストール
KUSANAGI 環境下に GUIでデータベースを管理するphpMyAdminをインストールします。zipをダウンロードして展開するだけで利用可能です。
外部に公開することはセキュリティ上好ましくないので使わない場合はすぐに削除して構いません。
ConoHa VPSのコントロールパネルにログインして、サーバー情報からコンソールにログインします。

ユーザー名はrootでパスワードはサーバー追加時に設定したrootパスワードを入力してください。

下記のコマンドを「テキスト送信」へ一行ずつコピペ実行していきます。
cd /home/kusanagi/プロファイル名/DocumentRoot/
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.4/phpMyAdmin-4.8.4-all-languages.zip
unzip phpMyAdmin-4.8.4-all-languages.zip
mv phpMyAdmin-4.8.4-all-languages phpMyAdminConoha
rm -rf phpMyAdmin-4.8.4-all-languages.zip
終わったらブラウザから
http://111.222.222.111/phpMyAdminConoha (大文字に注意)
にアクセスします。
phpMyAdmin
phpMyAdminのログイン画面が表示されます。
スタートアップスクリプトで設定したデータベースユーザー名(testdb)とパスワード(testtest)を入力しましょう。WordPressの管理ユーザー名、パスワードではありません。
すでに作成されているデータベースの中身を全て削除します。KUSANAGI特有のテーブルも後で生成されるので心配しないで削除して大丈夫です。

下の方の「Check all」で全ての項目にチェックした後、右の選択から「チェックしたものを:削除」を選択します。

確認画面が出るので、「はい」を選ぶとすべてきれいに削除されます。
ここで、すでにダウンロード済みの旧サーバーのデータ「xxxx.sql」をこのテーブルにインポートします。
上のインポートをクリックして、「ファイルを選択」で「xxxx.sql」ファイルを選んだと、「実行」しましょう。

データベースファイルが大きい場合インポートに失敗するのでphp.iniの編集が必要です。
/etc/php7.d/php.ini
post_max_size = 100M
表示を確認したい場合、URLを変更する必要がある場合
ここは不要な場合飛ばしてください。
表示を確認するには
新サーバーにドメインを移行する前に表示を確認したい場合にはphpMyAdminを利用してデータを編集する必要があります。
phpMyAdminにログインして、該当のテーブルから「wp-options」を選択します。
そして、「siteurl」と「home」の値を「http://VPSのIPアドレス」に変更しましょう。これを変更しないとブログにアクセスした時に旧サーバーに飛ばされてしまいます。

URL変更の必要がある場合
たとえば旧サーバーで「https://xxxxx.com/wordpress/」で運用していたブログを「https://xxxxx.com」になってしまう場合は、プラグインのSearch RegexであらかじめURLの置き換えを行っておきます。
Seach Regexの使い方についてはGoogleでたくさん出ると思いますのでここでは省略します。
表示確認と、URLの修正が済んだら、またphpMyAdminで「wp-options」の「siteurl」と「home」を元のURLに戻しておきましょう。
DNSレコード
移行の準備が終わったらドメインを新サーバーに向ける設定をします。

私が利用しているムームードメインを例に上げますが、他のドメインサービスを利用している場合でも同じようにDNSを変更します。
種別「A」
内容「ConoHa VPSのIPアドレス」
旧サーバーのIPアドレスがすでに入力されている場合は、新サーバーのIPアドレスに置き換えます。
を入力して確定しましょう。およそ30分〜72時間で反映されていきます。
ある程度浸透すると、新サーバーでもドメイン名でのアクセスが可能になります。

コンソールでドメイン有効、SSL化
DNSを新サーバーに向けたら、httpsでアクセスできるようSSL証明書を自動で取得するようコマンドを打ちます。
# KUSANAGI コマンド
kusanagi setting --fqdn xxx.com プロファイル名
kusanagi ssl --email メールアドレス プロファイル名
kusanagi target プロファイル名
kusanagi ssl --auto on
kusanagi https redirect
https://ドメイン名.com/
ブログが問題なく表示できれば移行は完了です。おつかれさまでした。
元のサーバーに戻したい場合は?
旧サーバーのデータを削除していない限りは、DNSレコードのIPアドレスを設定しなおすだけで元の環境に戻すことができます。しばらくはサーバーを削除せずそのままにしておくことをおすすめします。
\ 700円クーポン付き! /
- 約1ヶ月無料で使おう
コメント
コメント一覧 (2件)
とても有用な情報ありがとうございます。
説明の中で「表示を確認するには」という項目を行っているのですがホストのIPアドレスを入れてページを表示しようとすると、WPのイニシャライズの画面が表示されて、移行したページが表示されません。
ちなみにwp_options内のURLを変更しない場合も旧サーバーが表示されず、WPのイニシャライズの画面が表示されてしまいます。(WPのイニシャライズの画面は、簡単kusanagiログイン後のWP設定画面のことです。分かりますでしょうか)
このイニシャライズが表示されなければ移行の状態を確認できそうなのですが、どこか追加で設定変更を行う必要があるのでしょうか。ご教示いただけると幸いです。
1年以上間に更新した記事なので情報が古くなっております。
wp-config.php に以下の記述をしてもだめでしょうか?
私の方で確認した所、これでアクセスできました。
あとで記事をアップデートしますね。