サーバー移転先でも同じドメイン名で動作テストするやり方


サーバー移転先でも同じドメイン名で動作テストするやり方

先日、このブログは「さくらインターネット」から「エックスサーバー」へと移転しました。

サーバーの移転ですから、もちろん運営の場所が変わります。ただ、ドメインは変わらずそのままですので、最終的にはネームサーバーの設定を変更させて新しいサーバーへアクセスできるようにしなくてはいけません。

それまでの間、移転先のサーバーでサイトを構築して動作テストをしたいわけですが、移転先もドメインが同じですので、この状態では移転先のサーバーでテストができません。(今、稼働中のサイトに繋がってしまうため。)

そういったときは、移転先のサーバーが対応してくれているのならば「動作確認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アドレスへ変換することでサーバーへのアクセスを可能にする、インターネット上の重要なシステムです。

もう少し詳しい話は下記の記事にて。

Webページはなぜ見られるの?ページをブラウザで取得する流れを見てみよう!

Webブラウザを使いインターネットへ接続すると、ページを取得して文章や画像を閲覧することができます。今回の記事は、ブラウザがインターネットからコンテンツを取得するまでの一連の流れを解説します。

DNSに登録があるサーバーに向かってアクセスされる

今回、当ブログが行なったようなサーバーの移転の場合、移転先も同じドメイン名を設定させる必要があるのですが、上記の通りDNSの設定が変更されないと移転先のサーバーに繋げることができません。

なので、移転する際にはドメインを取得した企業(レジストラ)にアクセスして「ネームサーバー」を変更する作業が必要になります。これを変更すると全世界のDNSサーバーの設定が徐々に書き換わって移転先のサーバーに繋がるようになります。

ネームサーバー変更前に移転先のサーバーでテストしたい!

ネームサーバー変更前でも移転先サーバーにアクセスしたい
▲ネームサーバー変更前でも移転先サーバーにアクセスしたい

しかし、本格的にドメインの設定を変更する前に、移転先のサーバーでWebサイトの動作テストや構築などを行いたいですよね。移転先でWebサイトが完成された状態でネームサーバーを変更すれば、閲覧者から見てもWebサイトにアクセスできない時期がなく不便を感じさせません。

ですが、移転先は同じドメイン名、アクセスしようとしても移転前のサイトに繋がってしまう。これでは事前にテストができない・・・

ということで、前置きが長くなりましたが、これを解決しようという話が今回の記事の内容です。

動作確認URLを使う方法

エックスサーバーでは、この問題を解決するために2つの方法を提示してくれています。

最初に提示してくれている「動作確認URL」を使ってみます。

この方法の注意点として、移転先でもWordPressのようなCMSを利用したい場合、CMS内で設定されているURLと動作確認用のURLが異なるために、プログラムが正常に動作しない場合があります。これを避けたい場合は、後述する「hostsファイルの変更」を試してください。

  1. エックスサーバーのサーバーパネルにログインし、「ドメイン設定」から「ドメイン設定の追加」を行います。今回は移転後も同じドメイン名で継続しますので、移転前のドメインと同じものを設定します。

    「ドメイン設定」から「ドメイン設定の追加」を選択
    ▲「ドメイン設定」から「ドメイン設定の追加」を選択

    新しいドメインが登録されたのを確認
    ▲新しいドメインが登録されたのを確認

  2. メニューから「動作確認URL」を選択します。

    メニューから「動作確認URL」を選択
    ▲メニューから「動作確認URL」を選択

  3. 「動作確認URL設定の追加」を選択し、「サイト」から設定したいドメインを指定します。指定したら右下の「動作確認URL設定の追加(確定)」をクリックします。

    「動作確認URL設定の追加」を選択し、「サイト」から設定したいドメインを指定
    ▲「動作確認URL設定の追加」→「サイト」で動作確認URLを設定したいドメインをプルダウンメニューから指定する

    設定が完了した通知
    ▲設定が完了したことを確認

  4. 同じページの「動作確認URL設定の一覧」を選択し、「動作確認アドレス」が設定されていることを確認します。ここに表示されているアドレスが動作確認のための専用のアドレスです。設定が反映されるまで一時間ほどかかるようですので、しばらく待ってからのこのアドレスにアクセスしてみます。

    無事、移転先のサーバーにアクセスできれば成功です。

  5. 動作確認アドレスが発行されていることを確認
    ▲動作確認アドレスが表示されていることを確認、時間が経ったらこのアドレスにアクセスしてみる

  6. 十分に動作テストをして、動作確認URLが不要になったら「削除」をクリックしてURLを削除します。

    動作確認URLの削除
    ▲動作テストが済んだら不要になるので削除

hostsファイルを変更する方法

「動作確認URL」のメリットは、サーバーパネル上ですべて設定ができることと、動作確認URLを知っていればどのPCでもこのアドレスでアクセスができる点です。

しかし、エックスサーバーのヘルプページにもあった通り、WordPressなどのCMSを利用している場合、CMS内で設定されているURLと動作確認URLとが異なることで、プログラムが正常に動作しない場合がでてきます。

この場合は、WindowsやMac内に存在している「hosts」という名前のファイルを編集することで問題を回避します。

hostsはDNSサーバーよりも前に参照される

「hosts(ホスツ)」というファイルは、DNSサーバーに問い合わせするより前に参照される、IPアドレスとそれに対応したホスト名(ドメイン名)の一覧を記したテキストファイルです。

名前解決においてDNSサーバーへの問い合わせより前に確認されるため、インターネット上にあるDNSサーバーよりこちらの設定が優先されるようになります。この「hosts」ファイルの中身を書き換えることで、強制的に移転先のサーバーへアクセスするようにします。

この方法の注意点は、変更したhostsファイルが保存されているPCからでないとアクセスできないことです。複数のPCで移転先のサーバーへアクセスしたい場合は、すべてのPCにあるhostsファイルを変更する必要があります。

  1. まず、移転先となるサーバーのIPアドレスを知る必要があるので、サーバーパネルから確認します。

    エックスサーバーならば、サーバーパネルのメニューにある「サーバー情報」を選択し、「サーバー情報」の中にある「IPアドレス」を確認してください。

    移転先のサーバーのIPアドレスの確認
    移転先のサーバーのIPアドレスの確認

  2. 次に「hosts」ファイルを探します。場所は下記の通りです。

    Windows の場合
    C:¥windows¥system32¥drivers¥etc¥hosts

    Mac の場合
    /private/etc/hosts

    Windowsの場合のhostsファイルの場所
    ▲Windowsの場合のhostsファイル

  3. 拡張子はないのでダブルクリックしても開きません。

    なので、メモ帳などのテキストエディタを予め「管理者権限」で起動しておいて直接開くか、例えばデスクトップなどへコピーしておいて、そこから編集する場合は管理者権限は必要なくなりますので、こちらの方法でもよいです。

    ただ、後者の場合、etcフォルダに保存するときは管理者権限が必要になります。

    大した記述はされていませんが、万が一を考えてバックアップをとっておくと安心です。

    テキストエディタは管理者権限で起動
    ▲直接編集したい場合はテキストエディタを管理者権限で起動

    テキストエディタ「メモ帳」で開く
    ▲Windowsの標準テキストエディタ「メモ帳」で開く場合

  4. hostsファイルが開いたら、下の方に「事前に調べたIPアドレス」と、それに対応させる「ホスト名(ドメイン名)」を一行で記述してください。書式は下記の通り。

    〈IPアドレス〉〈スペース〉〈ホスト名〉

    とてもシンプルな記述です。ちなみに、「#」を入れるとコメントアウトできます。必要な場合はコメントを入れてわかりやすく管理できます。

    記述したらetcフォルダ内へ保存します。

    IPアドレスとドメイン名を対応させる
    IPアドレスとドメイン名をここで対応させる

  5. 保存が完了したら、そのPCで通常通りアクセスしてみてください。hostsファイルの設定が優先されて、移転先のサーバーへアクセスできたら成功です。

    この方法の利点は、Webサイトのドメイン名を一切変更せずにアクセスできる点で、移転先のサーバーにあるプログラムも同じドメイン名で動作テストが可能になります。URL関連の不具合も少なくなると思います。また、ネームサーバーを変更した後でもURLの設定を再度変更する必要がなく、よりスムーズに移行が進みます。

    この方法は、hostsファイルで設定したPCでしかアクセスできませんのでご注意ください。また、ネームサーバー変更前の「一時的な」動作確認方法ですので、用が済んだら設定は元に戻しましょう。(追記した記述を削除すれば元に戻ります。)

まとめ

以上、エックスサーバーを例に「動作確認URL」「hostsファイルの編集」の2つの方法を紹介いたしました。といってもエックスサーバーのヘルプページに書いてある通りではあるのですが、意味も分からず操作するのも怖いだろうと思ったので、原理についても簡単に書いてみました。

私の場合は、編集作業をするPCが一台のみなので「hostsファイルの編集」で対応していました。移転先のサーバーでWebサイトを完成させた上で、さくらインターネットで取得したドメインのネームサーバーを変更させることで移転させました。

hostsファイルの変更であれば、エックスサーバー以外のサーバーでも応用できます。また、ローカル内のテスト環境に向けて設定することも可能ですので、より柔軟な運用ができます。(192.168.0.2 test.example.jp のように書けばローカル内でもホスト名によるアクセスが可能です。)

長くなりましたが、この記事も何かのお役に立てましたら幸いです。