背景
インターンをしている企業で、WordPressでサイトを一から作成し、運用を行っています。
今回、さくらインターネットからXserverへサーバーを移行したので、手順を書き留めておきます。
手順まとめ
1. Xserver(移行先)での事前準備
- ドメインの追加
- SSL設定の追加
- DBの作成
2. さくらインターネット(移行元)のデータをダウンロード
- DBのエクスポート
- サイトデータのダウンロード
3. Xserverにデータをアップロード
- DBのインポート
- サイトデータのアップロード
4. 動作確認
5. ネームサーバー移行
1. Xserverでの事前準備
ドメインの追加
Xserverのサーバーパネルにログインし、【ドメイン設定】>【ドメイン設定追加】からドメインを追加します。
ドメイン名は、移行元(さくらインターネット)のドメイン名と同じものを入力します。
ドメインの反映には最大24時間程度かかるので、ドメインの追加は先にやっておいた方がいいです。
参考 ▶️ Xserver公式ドキュメント:ドメイン設定
SSL設定の追加
※上記「ドメインの追加」を行なった際に、SSLを設定していればこの手順はやらなくてOKです。
Xserverのサーバーパネルにログインし、【SSL設定】>【独自SSL設定追加】で、該当のドメインを選択し、SSL設定を追加します。
反映には最大1時間程度かかります。
DBの作成
Xserverのサーバーパネルにログインし、【MySQL設定】>【MySQL追加】からDBを追加します。
次に、【MySQL設定】>【MySQLユーザ追加】からユーザを追加します。
その後、【MySQL一覧】に移動し、先ほど作成したDBの「アクセス権未所有ユーザ」のところで先ほど作成したユーザを選択し、「追加」をクリックします。
「アクセス権所有ユーザ」のところに作成したユーザが追加されていればOKです。
「MySQLデータベース名」「MySQLユーザID」「パスワード」は後ほど使用するので、控えておいてください。
2. さくらインターネット(移行元)のデータをダウンロード
DBのエクスポート
さくらインターネットのサーバーコントロールパネルにログインし、【Webサイト/データ】>【データベース】>【phpMyAdminログイン】に移動します。
左のタブからエクスポートするDBを選択し、「エクスポート」に移動します。
「エクスポート方法」で「詳細」を選択し、下の方の「生成オプション」で「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する」にチェックを入れ、「実行」をクリックします。
hogehoge.sql
という名前でDBがエクスポートされます。
サイトデータのダウンロード
ローカルでコマンドを実行してサイトデータをダウンロードします。
ユーザー名は、サーバーコントロールパネルにログインする時のユーザー名を使用してください。
# さくらインターネットのサーバーにログイン
$ ssh ユーザー名@ユーザー名.sakura.ne.jp
# WPサイトフォルダに移動
$ cd /home/ユーザー名/www/WordPressサイトフォルダ
# サイトデータを圧縮(wordpress.zipは任意の名前でOKです)
$ zip -r wordpress.zip .
# ログアウト
$ exit
# zipファイルをダウンロード
$ scp ユーザー名@ユーザー名.sakura.ne.jp:/home/ユーザー名/www/WordPressサイトフォルダ/wordpress.zip ./
3. Xserverにデータをアップロード
DBのインポート
Xserverのサーバーパネルにログインし、【phpmyadmin】に移動します。
左のタブから作成したDBを選択し、「インポート」に移動します。
「インポートするファイル」でエクスポートしたhogehoge.sql
のファイルを選択し、「実行」をクリックすれば完了です。
もしこの時エラーが出た場合は、エクスポートしたデータの形式が間違っている可能性があるので、エクスポート時のオプションが間違っていないか見直してみてください。
サイトデータのアップロード
アップロードの前に、wp-config.php
ファイルを編集する必要があります。
ダウンロードしたサイトデータのzipファイルを解答し、wp-config.php
ファイルを開いて以下の部分を書き換えてください。
/** The name of the database for WordPress */
define('DB_NAME', 'MySQLデータベース名');
/** MySQL database username */
define('DB_USER', 'MySQLユーザーID');
/** MySQL database password */
define('DB_PASSWORD', 'パスワード');
/** MySQL hostname */
define('DB_HOST', 'ホスト名');
「MySQLデータベース名」「MySQLユーザID」「パスワード」は、DBの作成時に使用したものを記入してください。
「ホスト名」は、Xserverのサーバーパネルにログインし、【MySQL設定】>【MySQL一覧】の下の方に書いてあるものを記入してください。
wp-config.php
ファイルを編集したら、サイトデータを再度zip圧縮します。
サイトデータをサーバーにアップロードするのですが、SSH接続して行う必要があるので、先にSSHの設定をします。
参考 ▶️ Xserver公式ドキュメント:SSH設定
秘密鍵(サーバーID.key
)がダウンロードできたら、以下のコマンドを実行します。
# .sshディレクトリがなければ作成
$ mkdir ~/.ssh
# 秘密鍵を.ssh配下に移動
$ mv ~/Downloads/サーバー名.key ~/.ssh
# 秘密鍵のファイル名を変更
# もし、「id_rsa」のファイルが既に存在していたら、任意のファイル名(例:id_xsrv_rsa)でOKです。
$ mv ~/.ssh/サーバー名.key id_rsa
# 秘密鍵のパーミッションを変更
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa
# サーバーにアップロードサイトデータを
$ scp -P 10022 wordpress.zip ユーザー名@ユーザー名.xsrv.jp:/home/ユーザー名/ドメイン名/public_html/
# もし秘密鍵のファイル名がid_rsaでない場合はこちら
$ scp -i ~/.ssh/秘密鍵のファイル名 -P 10022 wordpress.zip ユーザー名@ユーザー名.xsrv.jp:/home/ユーザー名/ドメイン名/public_html/
# サーバーにログイン
$ ssh ユーザー名@ユーザー名.xsrv.jp -p 10022
# もし秘密鍵のファイル名がid_rsaでない場合はこちら
$ ssh -i ~/.ssh/秘密鍵のファイル名 ユーザー名@ユーザー名.xsrv.jp -p 10022
# 該当のフォルダに移動
$ cd ドメイン名/public_html
# zipファイルを解凍
$ unzip wordpress.zip
# wordpress配下のファイルをpublic_html配下に移動
$ cd wordpress
$ mv * ../
# 不要なファイルを削除
$ cd ../
$ rm wordpress.zip
$ rm -r wordpress
4. 動作確認
Xserverには「動作確認URLを追加して確認する方法」がありますが、WordPressを使用したサイトではその方法が使用できないので、ローカルのhostsファイルを編集して動作確認を行います。
mac OSでのコマンドは以下の通りです。
# hostsファイルをデスクトップ上に移動
$ mv /etc/hosts ~/desktop/hosts
# hostsファイルを編集(内容は以下)
$ vim ~/desktop/hosts
# hostsファイルを元の場所に戻す
$ mv ~/desktop/hosts /etc/hosts
hostsファイルの最下部に新しい行を追加し、「サーバーIPアドレス + (半角スペース) + ドメイン名(もしくはサブドメイン)」と入力します。
ドメイン名 | hostsファイルの入力内容 |
---|---|
example.com | xxx.xxx.xxx.xxx example.com |
test.example.com | xxx.xxx.xxx.xxx test.example.com |
「xxx.xxx.xxx.xxx」の部分には「サーバーのIPアドレス」を入力してください。
サーバーのIPアドレスは、Xserverのサーバーパネル内の「サーバー情報」で確認できます。
hostsファイルの編集が終わったら、ドメインにアクセスして動作確認ができます。
サーバー移行が終了したら、hostsファイルの編集内容は元に戻してください。
参考 ▶️ Xserver公式ドキュメント:hostsファイルを編集して確認する方法
動作確認中に、「ページが見つかりません」というエラーが出た時
.htaccess
ファイルの設定が間違っている可能性があります。
WPのパーマリンク設定画面で、内容はそのままで「更新」すると直る場合があるので試してみてください。
参考 ▶️ WordPress(ワードプレス) 移行での不具合事例:トップページ以外表示されない
5. ネームサーバー移行
さくらインターネットのサーバーコントロールパネルにログインし、【ドメイン/SSL】>【ネームサーバー設定】に移動します。
【さくらのドメイン】>【Whois】>【ネームサーバーを編集】をクリックします。
ネームサーバからさくらインターネットのネームサーバを削除し、Xserverのネームサーバを追加して保存します。
Xserverのネームサーバー | |
---|---|
ネームサーバー1 | ns1.xserver.jp |
ネームサーバー2 | ns2.xserver.jp |
ネームサーバー3 | ns3.xserver.jp |
ネームサーバー4 | ns4.xserver.jp |
ネームサーバー5 | ns5.xserver.jp |
参考 ▶️ Xserver公式ドキュメント:ネームサーバーの変更