エックスサーバーへサイトの移転、SSLを事前認証でダウンタイム無し

この記事は取り急ぎ文字だけ。追記で画像を載せてわかりやすくする予定。(あくまで予定)

さて、

WordPressのバージョンを5→7系に上げたらサイトの表示速度がめちゃくちゃ遅くなってしまった。
GoogleのスピードテストInsightでも以前は62だったモバイルのスコアが43になり、速度インデックスは18.5秒と激遅。

これはさすがにいかん。サイト訪問者がサイトの表示速度が遅すぎて離脱したら順位も落ちるだろうし。

ということでここでの選択肢は2つ。Wordpressのバージョンを元に戻す(バックアップから復元)か、サーバーをもっと良いものに移動させる。(サイトの速度が遅いのはサーバーの応答が9.15sもかかっているのも原因の1つ)

今回はサーバーの移転を行うことにしました。

新サーバー(Xサーバー)でWordpressが動作するか事前テスト

旧サーバーに載せてあるWordpressですが、それが新サーバーで動作するかはわかりません。PHPのバージョンもMySQLのバージョンも若干違うのならテストが必要です。

新サーバーは実績の豊富なエックスサーバーに決めました。既に年間の賃料を支払っていつでも使える状態にしておきました。

この時点ではエックスサーバーで使えるドメインはデフォルトのhttp://hogehoge.xsrv.jpしかありません。

旧サーバーからSQLデータとサイトデータをダウンロードしておきます。サイトの移転作業は何度もやっているのでお手の物です。

Step1.エックスサーバーでデータベースを作成
Step2.SQLデータをエックスサーバーのMySQLからインポートする
Step3.Wordpressデータのwp-config.phpを適宜エックスサーバーのDB情報に変更
Step4.wp-config.phpをエックスサーバーへアップロード
Step5.海外のツールを使わせてもらう(https://interconnectit.com/products/search-and-replace-for-wordpress-databases/)これをダウンロードして解凍したファイル軍をエックスサーバーへアップロードし、ドメインをエックスサーバーのドメイン(hogehoge.xsrv.jp)へ変更をかけます。その後、ツールはFTP上から削除。
Step6.他のWordpressファイルをすべてアップロード
Step7.加えてこのドメインがインデックスされないようにrobots.txtを記述してアップロードしておく
Step8.hogehoge.xsrv.jpでサイトが見れるか、ちゃんと動作するか確認する
Step9.問題なければエックスサーバーで動作できることを確認したのですべてのファイルとDBを削除する。

これでテスト完了です。

他社レンタルサーバーで使っていたWordpressがエックスサーバー上でも動作することが確認できました。

本番サイト移転の準備

さて、ここからドメインを変更せずに、本来の目的であるサーバーだけ移転するための準備をしていきます。

エックスサーバーはありがたいことにネームサーバーがエックスサーバーに向いてなくても事前にドメインを設定できるレジストラなのです。

まずドメインの新規追加です。
newsrv.comを追加。(ドメインはあなたのドメイン名に読み替えてください)

これによってルートの下にnewsrv.comというフォルダが出来ます。ここの中にpublic_htmlというフォルダがあるので、移行するサイトのデータを入れていく形です。

ここまで準備しました。

エックスサーバーで事前SSL設定ができる

マニュアルをみてください。

https://www.xserver.ne.jp/order/order_transfer_server.php
https://www.xserver.ne.jp/manual/man_order_domain_ssl.php
https://www.xserver.ne.jp/manual/man_server_ssl.php#link-b

なんとサイトを移動するまえにSSLの事前設定ができるらしいです。

私のサイトはもともとCoreSSLという有料のSSLを導入していますが、もともと使っているSSLをエックスサーバーに持ち込むことは現時点では出来ない様子です。

なのでひとまずはエックスサーバーの無料SSLを先に適用しておこうと思います。CoreSSLのほうはやむなく捨てることになるわけですが。

事前のWEB認証

まずWEB認証のほうを試しました。ところが現レンタルサーバーのウェブサーバーはNginxが使われていて、ルート配下の.wellknownフォルダにはアクセスさせない設定になっているのです。

旧サーバー会社に問い合わせしたところ設定変更はできないということなのでWEB認証はあきらめました。

次にDNS認証をやろうと思いました。

事前のDNS認証

ところが、現在使っているレジストラではDNSレコード編集に対応してないことが発覚。ドメイン管理会社も移転する必要があることを確認しました。

ということで旧ドメイン管理会社→DNSレコード追加ができる新ドメイン管理会社へドメインの移行をする必要がでてきてしまいました。

バリュードメインでDNSレコードの設定ができるか問い合わせとテスト

ドメインの移行には結構制限があります。ドメインを取って60日以内の移転ができないとか、手続きが面倒だったりします。

幸いドメイン移転も何度もやったことがあるので大丈夫だるおと思っていたのですが、ここで1週間かかってしまいました。

まずGMO系列のバリュードメインのマニュアルを見たところ、DNSレコードの追加ができるようだったのでバリュードメインに移転することに決めました。

念のため問い合わせを行いました。


以下のようなDNSレコードの追加をしたいと思っています。

ホスト名 _acme-challenge.example.com
種別 TXT
内容 2llRoHogeX6b0vKgUOHogeQeIQJU9nbZxybAHoge

運用環境は以下の構成です。(まだドメインは他社レジストラで管理していて、バリュードメインでできるなら移管しようとしております)
・レジストラ:バリュードメイン
・レンタルサーバー:エックスサーバーでサイト運用

DNSレコードの設定は管理画面からできますか?
もしできるならどこから設定しますか?
設定方法のマニュアルがあれば教えていただけると幸いです。


ドメインの移管後、VALUE-DOMAINのネームサーバーを設定いただいた
場合、ドメインのDNS設定にてTXTレコード等の設定や編集を行うことが
可能でございます。

他社様のネームサーバーをご利用中は、弊社側にてDNS設定の変更を
行われましてもインターネット上に反映されませんため、状況に応じて
ネームサーバーの変更が必要となりますこと、ご了承いただければと
存じます。

■バリュードメインのネームサーバーの変更

※ネームサーバーの変更がインターネット上に完全に反映されるまで、
 数時間から最大72時間ほどかかりますのでご注意ください。

なお、VALUE-DOMAINのネームサーバーに切り替えますと、現在の
ネームサーバーにて設定されているDNS設定が無効となります。

現在設定されているウェブサーバーやメールサーバーを引き続き
使用する場合は、必ず現在のネームサーバーのDNS設定をご確認の上、
同一の設定をVALUE-DOMAINのDNS設定にて行っていただきますよう
お願いいたします。

DNS設定につきましては、下記から対象のドメイン名をクリックして
いただくことで変更画面へアクセスが可能でございます。

■DNSレコード/URL転送の設定
https://www.value-domain.com/moddns.php

DNS設定画面の下部、「DNS設定方法」にて記述形式のサンプルを
ご用意いたしておりますので、ご参考いただけますと幸いでございます。


>ドメインの移管後、VALUE-DOMAINのネームサーバーを設定いただいた
>場合、ドメインのDNS設定にてTXTレコード等の設定や編集を行うことが
>可能でございます。

>他社様のネームサーバーをご利用中は、弊社側にてDNS設定の変更を行われましてもインターネット上に反映されませんため、状況に応じてネームサーバーの変更が必要となりますこと

こちらについてですが、ネームサーバー変更画面で
ネームサーバー1 NS1.VALUE-DOMAIN.COM
ネームサーバー2 NS2.VALUE-DOMAIN.COM
ネームサーバー3 NS3.VALUE-DOMAIN.COM
ネームサーバー4 NS4.VALUE-DOMAIN.COM
ネームサーバー5 NS5.VALUE-DOMAIN.COM
とする、ということでよいですか。

でもレンタルサーバー会社からは決められたネームサーバーを使う用に指示があるのが普通だと思いまして。

使う予定のレンタルサーバー(Xサーバー)では、ネームサーバーを
ns1.xserver.jp
ns2.xserver.jp
ns3.xserver.jp
ns4.xserver.jp
ns5.xserver.jp
に設定せよ、と書かれていまして。

現在他社レジストラで使用中のドメインでは次の2つのネームサーバーを設定中でして

ns1.hogehoge.com
ns2.hogehoge.com

文字通りhoge社のネームサーバーを使って、サイト運営はhogeレンタルサーバーを利用しております。

この部分を
ネームサーバー1 NS1.VALUE-DOMAIN.COM
ネームサーバー2 NS2.VALUE-DOMAIN.COM
ネームサーバー3 NS3.VALUE-DOMAIN.COM
ネームサーバー4 NS4.VALUE-DOMAIN.COM
ネームサーバー5 NS5.VALUE-DOMAIN.COM
に変更してしまうと、サイトが表示されなくなってしまうのではと思ったのですが


さようでございますね。

弊社VALUE-DOMAINのネームサーバーに設定いただけましても、対象ドメインのDNS情報のAレコードにて
レンタルサーバー提供元管理会社様にて提供されている対象サーバーのIPアドレスを設定いただけますと
サイトの運用が行えるのではないかと存じます。

なお、レンタルサーバー提供元様側での設定もあるかと存じますため、
恐れ入りますが、サーバー提供元管理会社様にて念のため再度ご確認
いただけますと幸いでございます。


ここまで来ていったん諦めかけました。
DNSレコードは今までいじった経験がなく意味がわからなかったからです。

でもここで終わってはサイトの移転ができないので、なんとか読み解いてみました。

重要なのは
・DNS情報のAレコードにて現在使っているレンタルサーバーのIPアドレスを設定する
・バリュードメインのネームサーバーに変更する

この2つをやればよいのではないかということです。そこで自分が持っているドメインでテストをしました。

DNSレコード追加のテストを行った

サンプルですがこのドメインはバリュードメインで管理中。サイトも表示できる。
http://www.dnsrecordtest.com

ネームサーバーはミニムレンタルサーバーを使っているので以下のネームサーバーが設定されています。
ns01.minim.jp
ns02.minim.jp

①これを以下のように変更。

NS1.VALUE-DOMAIN.COM
NS2.VALUE-DOMAIN.COM
NS3.VALUE-DOMAIN.COM
NS4.VALUE-DOMAIN.COM
NS5.VALUE-DOMAIN.COM
へ変更。

当然ながらサイトにアクセスできなくなりました。

②ミニムレンタルサーバーのIPアドレスを調べて、バリュードメインのDNS設定で

a www 99.106.157.200
a @ 99.106.157.200

を追加。

しばらく経つとアクセスできることを確認。

なるほど、このようにすればネームサーバーにNS1.VALUE-DOMAIN.COMを設定してもサイトへのアクセスが途切れないことを確認できた。

順番は②→①とすればサイトのダウンタイムが無い。

ドメイン管理会社の移転(Transfer OUT/IN)

ここから本番ドメインをバリュードメインへ移転します。

私自身今までいくつかのレジストラを使ってドメインの転出、転入を行ったことがありますので今回も特に問題なく出来ると思っていました。

手順としては以下の流れです

1.ドメインの転出ロックがかかっている場合はロックを外す
2.ドメインの転出処理を行う
3.旧レジストラからドメインのAuth Codeがメールで来る
4.バリュードメイン側でドメイン移管(転入)処理を行う。この際にAuth Codeを入力する。ここで課金される。
5.旧レジストラから移管承認のメールが来るので、承認を行う
6.バリュードメイン側にドメインが移管される

この流れが基本です。旧ドメイン時にWhois情報で自分の管理者名やメールアドレスを登録していないと駄目です。

しかしなぜか今回は5の承認メールが私のところに届かず10日ほどたってしまいました。謎

旧レジストラに問い合わせしたものの何も解決せず。いつの間にか転出、転入が終わってました。。

エックスサーバー&バリュードメインで事前のDNS認証を行う

さていよいよDNSレコードを使った事前SSL設定作業を行います。

次の流れで慎重に行いました。

バリュードメイン側のDNS設定にて旧レンタルサーバーのIPアドレスをAレコードで追加

a www 123.456.78.125
a @ 123.456.78.125

その下に、エックスサーバーのDNS認証画面で表示された2つのDNSレコードをバリュードメインの記述方法で追記

txt _acme-challenge 2llRoHogeX6b0vKgUOHogeQeIQJU9nbZxybAHoge
txt _acme-challenge.www Zo_HogeqfDxVYuF5vICQMobqJgRuImurL_Hoge6X58

ここで1時間待機。DNSの設定が反映されるまでバリュードメインによると最大30分かかるとのことなので。

さらにサイトの表示を確認。問題なし。

次にバリュードメインのネームサーバーを次の5つを入力。

NS1.VALUE-DOMAIN.COM
NS2.VALUE-DOMAIN.COM
NS3.VALUE-DOMAIN.COM
NS4.VALUE-DOMAIN.COM
NS5.VALUE-DOMAIN.COM

SEOチェキのWhois情報タブから自分のドメインを入力するとWhois情報を閲覧できる。
http://seocheki.net/

設定が反映されていれば、上記NS?.VALUE-DOMAIN.COMが記述されてるはず。
とはいえ設定の浸透まで時間がかかるのでここで最大24時間の待機が必要。

エックスサーバーでDNS認証の手続きをしても、DNSレコードが見つからないと言われて認証が完了しない。

そこでwindowsのコマンドプロンプトを立ち上げて、nslookupコマンドを用いて、自分が記述したTXTレコードがちゃんと反映されているかチェックしてみる。

nslookup -type=ANY _acme-challenge.www.example.com 8.8.8.8
サーバー: dns.google
Address: 8.8.8.8

権限のない回答:
_acme-challenge.www.example.com
text ="Zo_HogeqfDxVYuF5vICQMobqJgRuImurL_Hoge6X58″

↑ちゃんと設定が反映されている

nslookup -type=ANY _acme-challenge.example.com 8.8.8.8
サーバー: dns.google
Address: 8.8.8.8

権限のない回答:
_acme-challenge.example.com
text ="2llRoHogeX6b0vKgUOHogeQeIQJU9nbZxybAHoge"

↑ちゃんと設定が反映されている

ということでもうしばらく待つことに。

2時間ほど待ってからエックスサーバーでDNS認証を行うと認証が完了しました。

そしてSSL反映済になりました。めでたしめでたし。

ここまでで事前SSL設定ができたのでダウンタイム無くサイトの移行が出来るはずと思います。

エックスサーバーへサイトを移転する作業

1.最新のサイトデーター(SQLデータと、Wordpress)を旧サーバーからダウンロードしてくる。
2.エックスサーバーにデータベースを作成する
3.MySQLからSQLデータをインポートする
4.Wordpressのwp-config.phpを作成したエックスサーバーのDB情報等に書き換えて
5.すべてのWordpressファイルをアップロード

このあと、

バリュードメインのネームサーバーをエックスサーバーのネームサーバー名に変更します。

ns1.xserver.jp
ns2.xserver.jp
ns3.xserver.jp
ns4.xserver.jp
ns5.xserver.jp

これでバリュードメインにあるドメインから、サイトがあるサーバーにエックスサーバーを指定できました。

ネームサーバーの反映まで最大72時間かかるとのことです。

hostsファイルを使って移転後の動作確認

あまり知られていませんが、hostsファイルを使う事でネームサーバーの反映が終わる前に、移転後のレンタルサーバーのサイトを閲覧することができます。これで表示が問題ないかテストできます。

Windowsの画面左下のWindowマークからmemoと入力するとメモ帳が出てくるはずです。それを右クリック>管理者として実行を行います。

ファイル>開く

C:\Windows\System32\drivers\etc\hosts

このファイルをメモ帳で開きます。メモ帳が出てこない場合は画面右下の「テキスト文書(*.txt)」のところを「すべてのファイル」を選択すれば出てくると思います。

このhostsファイルをメモ帳で開いたら、最下部に追記します。

example.com 新サーバーのIPアドレス
www.example.com 新サーバーのIPアドレス

この2行。

新サーバーのIPアドレスですが、エックスサーバーなら管理画面に入ってサーバー情報のところに表示されてるはず。それをコピペすればよい。

ファイルを保存しておきます。

ブラウザを開いて、いったんキャッシュを削除して、シークレットモードでexample.comを開いてみることをお勧めします。

これでバリュードメインのネームサーバーを見に行く前にhostsファイルを見に行って、自分のドメイン(example.com)にアクセスすると、指定されたIPアドレスをアクセスしに行くようになります。

サーバー移転後のサイトが見えてればOKです。

移転前と移転後と全く同じサイトだと見分けがつかないので、私は移転直後のアップロード時に少し手を加えたり余分な画像ファイルをアップしたりして目印を付けたりします。(わかるかたは何かしら目印つけておくとよいでしょう)

hostsファイルは確認ができたら先ほど追加した2行は削除しておきます。

さて、翌日ぐらいになればネームサーバーが反映されてるはずですので、ブラウザでサイトを見てみましょう。問題なければOKです。

最後にバリュードメインのDNS設定のときに追加した、DNSのTXTレコードと以前のサーバーIPアドレスは全部削除しちゃってOKとのこと。

サイトの動作確認とスピードテスト

スピードテストを行いました。

Mobile 43→68
PC 70→95

にアップしました。これでサイト訪問者の訪問直後の離脱は減らせるだろうと思います。

とにかく今回のサーバー移転はとても大変でした。かなり注意深く、常にサイトの表示をチェックしながら行いました。