先日、このブログは「さくらインターネット」から「エックスサーバー」へと移転しました。
サーバーの移転ですから、もちろん運営の場所が変わります。ただ、ドメインは変わらずそのままですので、最終的にはネームサーバーの設定を変更し、新しいサーバーへアクセスできるようにしなくてはいけません。
それまでの間、移転先のサーバーでサイトを構築して動作テストをしたいわけですが、移転先もドメインが同じですので、この状態では移転先のサーバーでテストができません。現在稼働中のサイトにつながってしまうためです。
そういったときは、移転先のサーバーが対応しているのであれば、「動作確認URL」を使う、またはパソコン内にある「hosts」ファイルを書き換え、アクセス先を移転先サーバーへ向けるという方法があります。
今回は、私が利用している「エックスサーバー」を例に、この2つの方法について書いてみたいと思います。
そもそもなぜWebページが見られるのか
操作に移る前に、まずWebページが見られる仕組みを簡単に書いてみます。
皆さんは、このブログのページを「Webブラウザ(ウェブブラウザ)」を使って閲覧している状態かと思います。ブラウザの上部には、このページの「URL(Uniform Resource Locator)」が表示されていますね。
このURLを指定すれば、ブラウザはコンテンツを表示してくれます。一見すると、これだけで直接Webサーバーへアクセスしているように感じますが、実はURLやドメイン名(ホスト名)だけでは、コンテンツを保存しているサーバーへ接続できません。ネットワーク上の場所を示す「IPアドレス」の情報が必要だからです。
コンピューターがネットワーク内でデータをやりとりするためには、IPアドレスが欠かせません。ただ、人間にとって単調なIPアドレスを覚えるのは難しく、ブランド名としても扱いにくいため、ドメインやURLという、より覚えやすい表記が使われています。
DNSサーバーに問い合わせてIPアドレスを教えてもらう
このため、実際にWebページを表示するには、どこかで「アクセスしたいホスト名を使っているサーバーのIPアドレス」を調べてもらわなくてはいけません。「ホスト名とIPアドレスを関連付けている場所」へ問い合わせる必要があるのです。
この名前解決の仕組みを「DNS(Domain Name System)」といいます。

例として、「example.com」というサイトにアクセスしたいとします。
最初に、「example.com」に関連付けられているIPアドレスをDNSへ問い合わせます。すると、DNSから「example.comへアクセスするためのIPアドレスは xxx.xxx.xxx.xxx です」という情報が返ってきます。
その情報を受け取ったら、「xxx.xxx.xxx.xxx」のWebサーバーへアクセスしてデータを取得し、Webブラウザにコンテンツを表示します。
この一連の処理を「名前解決(name resolution)」といいます。
上の図はかなり簡略化していますが、この仕組みを覚えておいてください。ドメイン名からIPアドレスを調べることでサーバーへのアクセスを可能にする、インターネット上の重要な仕組みです。
もう少し詳しい内容は、以下の記事で紹介しています。

DNSに登録されているサーバーへアクセスする
今回、当ブログが行ったようなサーバー移転では、移転先にも同じドメイン名を設定する必要があります。ただし、DNS側の設定が変更されるまでは、通常のアクセスでは移転先のサーバーへ接続できません。
そのため、移転時にはドメインを管理している事業者へアクセスし、「ネームサーバー」を変更する作業が必要です。変更後は、各所に残っているDNS情報のキャッシュが更新されるにつれて、移転先のサーバーへ接続されるようになります。
ネームサーバー変更前に移転先のサーバーでテストしたい!

しかし、本格的にドメインの設定を変更する前に、移転先のサーバーでWebサイトの動作テストや構築を行いたいですよね。移転先でWebサイトを完成させた状態でネームサーバーを変更すれば、閲覧者がWebサイトへアクセスできない期間をできるだけ避けられます。
ところが、移転先でも同じドメイン名を使うため、通常どおりアクセスすると移転前のサイトにつながってしまいます。これでは事前にテストができません。
前置きが長くなりましたが、この問題を解決するのが今回の記事の内容です。
動作確認URLを使う方法
エックスサーバーでは、この問題を解決するために2つの方法を案内しています。
最初に、案内されている「動作確認URL」を使ってみます。
WordPressなどのCMSは、内部で設定されているURLと動作確認URLが異なるため、正常に動作しない場合があります。エックスサーバーの現行マニュアルでも、WordPressなどの動的なサイトは、後述する「hostsファイルの変更」で確認するよう案内されています。
以下の画像は、記事を作成した2018年当時の旧サーバーパネルです。現在の新サーバーパネルでは、「動作確認URL」を開き、対象ドメインの変更ボタンを「ON」にする流れです。画面が異なる場合は、上の公式マニュアルにある「新サーバーパネル」の手順をご確認ください。
エックスサーバーのサーバーパネルにログインし、「ドメイン設定」から移転先で使用するドメインを追加します。今回は移転後も同じドメイン名を使うため、移転前と同じドメインを設定します。


旧サーバーパネルでは、メニューから「動作確認URL」を選択します。

旧サーバーパネルでは、「動作確認URL設定の追加」を選択し、「サイト」から設定したいドメインを指定します。指定したら、右下の「動作確認URL設定の追加(確定)」をクリックします。


旧サーバーパネルでは、同じページの「動作確認URL設定の一覧」を開き、「動作確認アドレス」が設定されていることを確認します。表示されたアドレスが、動作確認専用のURLです。設定の反映には時間がかかる場合があるため、しばらく待ってからアクセスします。
移転先のサーバーへアクセスできれば成功です。

十分に動作テストを行い、動作確認URLが不要になったら無効化します。旧サーバーパネルでは「削除」をクリックします。新サーバーパネルでは、対象ドメインの変更ボタンを「OFF」にしてください。

hostsファイルを変更する方法
「動作確認URL」のメリットは、サーバーパネル上ですべて設定できることと、そのURLを知っていれば、どのPCからでもアクセスできる点です。
しかし、エックスサーバーのマニュアルにもあるとおり、WordPressなどのCMSでは、内部で設定されているURLと動作確認URLが異なることで、正常に動作しない場合があります。
この場合は、WindowsやMacにある「hosts」というファイルを編集することで、問題を回避できます。
hostsはDNSサーバーよりも前に参照される
「hosts(ホスツ)」は、DNSサーバーへ問い合わせる前に参照される、IPアドレスと、それに対応するホスト名(ドメイン名)を記したテキストファイルです。
一般的な環境では、名前解決時にDNSサーバーへの問い合わせよりも先に確認されるため、hostsファイルの設定が優先されます。このファイルへ移転先のIPアドレスとドメイン名を記述し、アクセス先を一時的に移転先サーバーへ向けます。
この方法が有効なのは、変更したhostsファイルが保存されているPCだけです。複数のPCで移転先のサーバーへアクセスする場合は、それぞれのPCでhostsファイルを変更する必要があります。
まず、移転先となるサーバーのIPアドレスを確認します。
エックスサーバーの場合は、サーバーパネルの「サーバー情報」を開き、表示されている「IPアドレス」を確認してください。

次に、「hosts」ファイルを探します。場所は以下のとおりです。
C:\Windows\System32\drivers\etc\hosts
/private/etc/hosts

hostsファイルには拡張子がないため、ダブルクリックしても通常は開けません。
メモ帳などのテキストエディタを「管理者として実行」してから、hostsファイルを直接開いてください。または、いったんデスクトップなどへコピーして編集し、元のフォルダへ戻す方法もあります。どちらの場合も、最終的に元の場所へ保存するときは管理者権限が必要です。
万が一に備えて、編集前のhostsファイルをバックアップしておくと安心です。


hostsファイルを開いたら、末尾に「事前に調べたIPアドレス」と、それに対応させる「ホスト名(ドメイン名)」を1行で記述します。書式は以下のとおりです。
〈IPアドレス〉 〈ホスト名〉
IPアドレスとホスト名の間は、半角スペースまたはタブで区切ります。「#」から後ろはコメントとして扱われるため、必要に応じて説明を添えることもできます。
記述が終わったら、元のhostsファイルへ保存します。

保存が完了したら、そのPCから通常どおり対象のドメインへアクセスしてください。hostsファイルの設定が優先され、移転先のサーバーへアクセスできれば成功です。
この方法の利点は、Webサイトのドメイン名を変更せずにアクセスできる点です。移転先サーバーにあるプログラムも同じドメイン名で動作テストできるため、URLの違いによる不具合を避けやすくなります。また、ネームサーバー変更後に、URLの設定を改めて変更する必要もありません。
この方法で移転先へアクセスできるのは、hostsファイルを設定したPCだけです。また、ネームサーバー変更前の一時的な確認方法ですので、作業が済んだら追記した行を削除し、設定を元に戻しましょう。
まとめ
以上、エックスサーバーを例に、「動作確認URL」と「hostsファイルの編集」の2つの方法を紹介しました。エックスサーバーのマニュアルに沿った内容ではありますが、意味が分からないまま操作するのは不安だと思いましたので、仕組みについても簡単に書いてみました。
私の場合は、編集作業をするPCが1台だけだったため、「hostsファイルの編集」で対応しました。移転先のサーバーでWebサイトを完成させてから、さくらインターネットで取得したドメインのネームサーバーを変更し、移転しました。
hostsファイルを変更する方法は、エックスサーバー以外のサーバーでも応用できます。また、ローカル環境へ向けて設定することも可能です。たとえば「192.168.0.2 test.example.jp」のように記述すれば、ローカルネットワーク内でもホスト名でアクセスできます。
長くなりましたが、この記事が何かのお役に立てましたら幸いです。





