WordPressのサーバー移行｜LightsailからXサーバーへ

# プロローグ）Xサーバーへのデータ移行
- 現在、AWSのLightsailで運営しているWordPressサイトを、エックスサーバーへ移行する案件が発生しました
- 本稿は、その様子を（流れを）記載します
- Lightsail → エックスサーバー　という条件は稀だと思いますが、部分的にでも誰かの役に立つ情報となれば幸いです
- なお、全くの初心者には（「DNS？」「SSL？」となる方には）、本稿だけでは情報不足です

## 状態・条件
- 現在：AWSのLightsail（Bitnami）
- 移行先：エックスサーバー（共有サーバー）
- 移行対象：WordPressサイト
- 現在のサイトにおいてSSL設定済み
- WordPressのバージョン変更なし（予め現在のサイトWP・プラグインを最新へ更新済み）
- サイト中のコンテンツ変更はなし


# 手順１）ローカルへデータを集める
- FTPクライアントでLightsailのディレクトリへアクセスして `wp-content` の中身と `wp-config.php` をローカルへダウンロードする（WordPress全体をダウンロードしておいてもOK）
- phpMyAdminを用いて、データベースの中身をローカルへダウンロードする


## FTPクライアントでLightsailのディレクトリへアクセス
- 「アクセスの仕方が分からない〜」という方は、下記の記事を参考にしていただくか、「lightsail ftp」とかでググってみてください

https://qiita.com/tomokei5634/items/9f76ae3a5e2f004f27ef

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/b418598c-4299-8e64-33e4-8260feefbba3.png)

## phpMyAdminでLightsailのデータベースへアクセス
- 「アクセスの仕方が分からない〜」という方は、下記の記事を参考にしていただくか、「lightsail phpmyadmin」とかでググってみてください

https://qiita.com/tomokei5634/items/ca6a7043fe88cdfed1ba

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/e35d5b3c-71a6-9c11-8788-d057bc1ce613.png)


# 手順２）エックスサーバーにデータベースを用意して、データをアップする

## データベースの用意

- Xサーバーのメニューにある「MySQL設定」からデータベースを追加できます
- 「MySQL追加」から追加します
- 続いて「MySQLユーザー追加」からユーザーを追加します（※ `パスワード` はメモしておきましょう）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/4e99d552-6007-fe65-97a3-d9bfdcd756a3.png)

- 「MySQL一覧」で「アクセス権未所有ユーザ」を「追加」します
- `データベース名` `ユーザー名` `ホスト名` は、後ほど使います。メモしておきましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/fd03d668-afa4-db68-d4fa-fbbe7d030f05.png)

## phpmyadminで旧データをアップロードする

- Xサーバーのメニューにある「phpmyadmin(MariaDB10.5)」から、phpmyadminを起動できます。
- BASIC認証への入力が求められるので、先程に入力したユーザー名とパスワードを入力します
- 認証をパスできない場合は「MySQL設定 > MySQLユーザ一覧」からユーザーのパスワードを変更して試してみましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/cb3bccc6-0499-8214-26ff-c4a09f36e190.png)

-　先程に追加したデータベース名をクリックして「インポート」タブをクリック
-　アップロードファイルから、旧WordPressのデータベース（sqlファイル）を選択
-　「実行」をクリック（アップロードは、そこそこ時間がかかるかもしれません。気長に待ちましょう）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/3ce8510a-479d-9d73-eac2-7798baa5137c.png)

# 手順３）エックスサーバーにドメインを追加してディレクトリを確保する
## Xサーバーへドメインを追加
- Xサーバーのメニューにある「ドメイン設定」から、ドメインを追加できます
- ※この時点では、DNSの書き換えを実施していません。ただ、追加するだけです
- ドメインを追加することで、そのドメインに紐づいたディレクトリが用意されます
- ドメインを追加したら、上部にある「ファイルマネージャー」から、ディレクトリの存在を確認しましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/d0769c59-9d6f-8e1c-0a36-a7a46b7c7e23.png)


## FTPクライアントからアクセスできるように許可する
- ディレクトリが確保できたら、FTPクライアントからディレクトリへアクセスできるようにします
- Xサーバーのメニューにある「FTP制限設定」から、設定をします
- ドメインを指定後、「FTP接続許可IPアドレス追加」から設定を進めましょう
- ※ここで設定するIPアドレスは、ローカルPCの外部IPアドレスです。例えば、会社と自宅の２箇所から、FTPクライアントを通じてアクセスしたい場合は、会社と自宅のIPアドレスを登録することになります。「設定したIPアドレスからの接続を許可する」という内容です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/3139553a-44e3-4f20-dfff-4192cd439777.png)


# 手順4） FTPクライアントを通じて、WordPressをインストールする
## FTPクライアントの設定
- FTPクライアントの設定方法については、オフィシャルガイドが丁寧に解説してくれています
- （エックスサーバーって、分かりやすいマニュアル多くて良いですよね。お客様にもオススメしやすいレンタルサーバーですね）

https://www.xserver.ne.jp/manual/man_ftp_setting.php

## WordPressをインストールする
- 追加したドメインのディレクトリ内にある「public_html」ディレクトリへWordPressをインストールします
- [WordPressを公式からダウンロード](https://ja.wordpress.org/download/#download-install)して、解凍して、「public_html」ディレクトリへアップロードしましょう
- WordPress全体をローカルへ保存していた場合は、そのままそれを「public_html」ディレクトリへアップロードしてもOKです

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/2361da4d-4b10-bc31-bd09-97a94059689f.png)

# 手順5）旧データを上書きする
- ローカルへダウンロードしておいた旧データ `wp-config.php` `wp-content` を「public_html」ディレクトリへアップロード（上書き）します
- `wp-config.php` のデータベース部は、Xサーバーの設定内容に合わせて書き換える必要があります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/0a78d422-ad04-2bc0-63c2-a9aac122eb53.png)

# 手順6）「hosts」ファイルを書き換える
## 「hosts」ファイルを書き換え
- DNSを書き換えていないので、当然にドメインでアクセスすると、表示されるのは旧サーバー（Lightsail）のページです
- そこで「hosts」ファイルの書き換えを行います。「hosts」ファイルを書き換えることで、DNSを変更する前でも、ドメインのアクセスで新サーバー（Xサーバー）へアクセスすることができます
- 「hosts」の書き換え方法については、「hostsファイル　サーバー移行」などでググっていただければ...（WinとMacでも方法が少々異なります）
- 「hostsファイルを書き換えたけど、新サーバーへアクセスできない！」ってときは、シークレットブラウザを使うか、ブラウザ自体を再起動してみましょう（あと、この記事が良いです→[hostsファイルの設定を即時反映させる方法](https://qiita.com/aidadada/items/eddddb5d4ba8f99959eb)）

https://www.google.com/search?q=hostsファイル　サーバー移行

- Chromeを使っている場合は、 `chrome://net-internals/#dns` へアクセスすると「DNS lookup」をすることができます

[chrome://net-internals/#dns](chrome://net-internals/#dns)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/5ba06124-cf33-1ae4-f66e-2e2f8b3f6f3c.png)


## エラーでた

- 「hosts」の書き換えてから、ドメインへアクセスすると、エラーが表示されました
- ググると、XサーバーのSSL絡みの表示でした
- 本件の場合は、ゴニョゴニョせずに、DNSを書き換えて対応します

> 無効なURLです。
プログラム設定の反映待ちである可能性があります。
しばらく時間をおいて再度アクセスをお試しください。

https://support.xserver.ne.jp/faq/service_hp_trouble_not_exist.php

> サーバーパネル上で「ドメイン設定」「サブドメイン設定」「動作確認URL」および「SSL設定」を設定してからの時間経過が短い場合に発生します。
> 引用元：[Xサーバー > よくある質問](https://support.xserver.ne.jp/faq/service_hp_trouble_not_exist.php)


# 手順7）DNSを書き換える
- 本件の場合は、ゴニョゴニョするのが面倒だったので、もうDNSの書き換え（「ドメイン→Laghtsail」を「ドメイン→Xサーバー」へ変更）しました
- DNSの書き換えは、すぐには反映されません。寝る前に書き換えて、起きてから状況を確認しましょう
- DNS書き換え後には、XサーバーのSSL設定をON（有効）にしておきましょう
- Xサーバーのメニューにある「SSL設定」から、設定できます
- あとはドメインへアクセスして、ページが正常に表示されれば、作業完了です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/0dafde55-5499-275a-07fd-f33137f63e86.png)

# 最後に
- 今回は単純なサーバーの変更（データ移行＋DNS書き換え）だけだったので、作業としては２〜３時間、DNSの反映待ちを入れても１日間ほどの作業量でした
- 旧新のどちらかにSSLが設定されてないとか、ドメインが変わる（サブドメインにするなど）があれば、WordPressの中のドメイン部分をゴニョゴニョしたりする必要があるので、より面倒となります
- サイト中にお問い合わせフォームがある場合は、テスト送信もしておきましょう
- 「TOPページは表示されるのに、下層ページが表示されない」という場合は、WordPressの `設定 > パーマリンク設定` を再保存（「変更を保存」ボタンをクリックするだけ）を試してみましょう。「WordPressでページが表示されない問題」は、この方法で解決するパターンも多いです