【必見】WPをさくらからXserverへ移管（超最新）

最近仕事で、さくらインターネットからXserverにWPを移管する作業がありました。
本来専門外ですが、せっかく自分で調べてやったので、備忘録程度に記していきたいと思います。

【移行手順】
1. Xserverと契約する
2. ドメインの取得
3. WPデータのバックアップ
4. さくらサーバーからデータベース情報エクスポート
5. データベースの作成
6. Xserverにデータベース情報をインポート
7. wp-config.phpの編集
8. WPデータのアップロード
9. 動作確認
10. ネームサーバーの変更


今回は、Xserverの契約とドメインの取得は完了を前提として進めていきますので、
1 , 2 の処理は割愛して 3 のデータベース作成から説明します。


##WPデータのバックアップ

私はFTPを利用してバックアップを取りました。
BackUpという、空のディレクトリにWPデータをごっそりダウンロードします。
WPデータはwwwディレクトリの中にあります。

![ftp_bu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/dcf859aa-5fa4-a65e-5f84-2e93d208b323.png)

他にもWPにてバックアップ専用のプラグインを導入したり、他のソフトを利用する方法もあるので、
自分の使いやすいものを利用してください。



##さくらサーバーからデータベース情報エクスポート

お使いのIDとパスワードを使用して、phpamydmin にログインします。

![php_Sakura.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/a12119ed-6983-4043-3f9e-bc63092b91f2.png)

「エクスポート」タブをクリックし、設定を行なっていきます。

まず、デフォルトでは、『エクスポート方法』の、
「簡易-最小限のオプションだけ表示」にチェックがついているので、
「詳細-可能なオプションをすべて表示」にチェックを変更します。

すると、エクスポートしたいデータベースが詳細に表示させれるので、必要なものを選択します。

![sakura_exp1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/e7b4d62b-2f12-abb7-5293-c21db636c540.png)

『生成オプション』の、
「DOROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENT/TRIGGER コマンドを追加する」にチェックがないので、ここはチェックを入れておきます。

![sakura_exp2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/91163ea3-e5f4-c997-fdb2-d8ba6bb0b8aa.png)

あとはデフォルト通りで良いので、実行を押してmysqlファイルをダウンロードします。

<b>参考にしたサイト</b>
https://www.dbonline.jp/phpmyadmin/export-import/index1.html

##データベースの作成

Xserverのサーバーパネルにログインし、
データベース下の「MySQLの設定」をクリックします。

![sp_pf.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/fac3ca43-b528-a2a7-e4b4-7ebf7e300251.png)

「mysqlユーザー追加」タブをクリックし、
【mysqlユーザーID】と【パスワード】を入力します。

※ この２つは、後の phpadmin にログインする時のIDとパスワードになるので、控えておきましょう


![mysql_user_add.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/649fb20a-5988-5bea-6889-8ad218ef2652.png)


「mysql追加」タブをクリックし、
【mysqlデータベース名】を入力します。

![mysql_add.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/82789402-57e0-7c96-eaab-7ad2b94f53bd.png)


「mysql一覧」タブをクリックし、登録内容を確認すると、初期値として以下のようになっています。（図の番号参照）
1 登録したデータベース名
2 ユーザーなし状態
3 ユーザーなし状態

ユーザーにアクセス権を与えてあげるために、3 で先ほど登録した【mysqlユーザーID】を選択・追加してあげましょう。

![mysql_list.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/e95a5f26-60ca-de58-2c0f-894a9435e69c.png)

これでデータベースの設計は完了です。

##Xserverにデータベース情報をインポート

mysql設定時に登録した、IDとパスワードを使用して phpadmin にログインします

![xserver_php.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/ab8813c7-ee85-d239-0d29-8a5937bfa2fa.png)

mysql設定で作成したデータベース名をクリックし、
ファイルを選択で、さくらでエクスポートしたmysqlファイルを選択します。

![xserver_imp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/9904b819-b94a-83a7-d9db-37a86ad1fe3c.png)

あとは実行すればインポート完了です。

####インポート時のエラーについて

インポートした際に、エラーが発生したので、解決方法を載せておきます。

エラー内容：

```
エラー
SQL query:

—
— データベース: データベース名（元）
—
CREATE DATABASE データベース名（元） DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
MySQL のメッセージ: ドキュメント

#1044 – Access denied for user ‘データベース名（新）’@’新しいサーバーのホスト.xserver.jp’ to database ‘データベース名（元）’
```

これは、データベースの作成権限が無いことを示しているエラーです。
解決方法は、エクスポートしたmysqlファイル内の下記の記述をコメントアウト、または削除します。

```
CREATE DATABASE データベース名（元） DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
```

<b>参考にした資料</b>
https://wordpress.org/support/topic/%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8%E7%A7%BB%E8%BB%A2%E3%81%AB%E4%BC%B4%E3%81%84sql%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88/


##wp-config.phpの編集

WPのバックアップデータの中にある、 wp-config.phpファイルを開き、指定の箇所をmysql設定で登録した内容に編集します。
ホスト名はXserverのサーバーパネルから、 MySQL設定/MySQL一覧のした部分に記載があります。

![DB_php.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/24f4cea9-0eab-e08d-3e0b-aa44c8dd6eec.png)


##WPデータのアップロード

wp-config.phpの編集が終わったら、WPのデータをXserverで作成したドメイン下にアップロードします。
場所は、 ドメイン名/pblic_html/ です。

![ftp_al.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/f4634f95-1d86-5e66-679e-971c71574043.png)

##動作確認

Xserverのサーバーパネルから、
「動作確認URL」をクリックします。

![check_url1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/051d4899-7dca-6e71-d673-ad624450fdd8.png)

「動作確認URL設定追加」タブをクリックし、
確認したいドメインを選択し、追加します。

![check_url2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/3b78405d-dc55-1a2a-7360-a77ca7872a9d.png)

すると一覧画面で、選択したドメインと対応したURLが貼られているので、クリックして確認します。

※ 反映まで30分から1時間ほど時間がかかりますのでしばらくお待ちしてから、確認してください。


![check_url3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/627234/cc83cd22-d526-476d-725f-25e7635277f3.png)


##ネームサーバーの変更

動作確認で問題がなければ、ネームサーバーの情報を書き換えます。
ドメイン管理会社の管理画面などでネームサーバーを入力できる場所があると思いますので、
さくらのネームサーバーをエックスサーバーのネームサーバーに変更します。

エックスサーバーのネームサーバーは以下の通りです。

[![Image from Gyazo](https://i.gyazo.com/d2ad121c1b8c13503a3ef0f9d158c6cb.png)](https://gyazo.com/d2ad121c1b8c13503a3ef0f9d158c6cb)

私はさくらインターネットでドメインを購入・管理しているので、さくらインターネットの管理画面でネームサーバーの情報を書き換えました。
ネームサーバーの浸透は数時間～24時間程度とされていますので気長に待ちましょう。

<b>参考にしたサイト</b>
https://help.sakura.ad.jp/206205831/


##参考にしたサイト
https://www.xserver.ne.jp/manual/man_install_transfer_wordpress.php
https://www.kerenor.jp/moving-from-sakura-to-xserver/
https://sitemiru.com/2016/08/14/sakura-xserver/

以上です