• このエントリーをはてなブックマークに追加

hostsとは

hostsとはipアドレスとホスト名の定義ファイル。WindowsやMac、Linuxにある。このファイルにipアドレスとホスト名の定義を行うことにより、実際にインターネット上で見ることができるサイトや読み込み先・リクエスト先をあえて変更することができる。

example.comというサイトで運営しているサイトがあって、そこのサイトを移設しようとしたときには、新たにレンタルサーバーを借りて、そこにアクセスするわけではあるが、そこのレンタルサーバーを表示先として切り替えると都合が悪い。

構築中に本番用のドメインでアクセスできて、なおかつ今動いているサーバーのデータをそのままにしておけるようにするために、hostsを使う。

hostsの例

127.0.0.1 www.example.com

127.0.0.1は自分自身のPCのIPアドレス。

なので、今触っているパソコンのホストを探しに行って、Apacheなどがそのドメインの設定をしていたらそのリクエストに答えて、www.example.comとして表示される。

前もってドメインの切り替え前に動作チェックしたいもので有名なのがWordPress。WordPressはドメインをデータベースに保存し、そのドメイン上で動作するのが前提であるため、違ったドメインにアクセスされると保存されたドメインに転送されてしまう。なので、hostsを使って上げる必要がある。

hostsを使えないサーバーもある

困ったことにhostsを使えないサーバーもある。内部的にホスト名が割り当てられておらず、切り替え前に見ることができない。

hostsはwwwの有り無し・サブドメインを使っているならばそれも設定する

hostsはwww有りと無しの両方を指定しなければいけない。他にもサブドメインも落とし穴。ちゃんとそちらも指定する必要がある。

wwwあり・なし

127.0.0.1 www.example.com
127.0.0.1 example.com

こんな感じに記述する。

サブドメインを指定した例

127.0.0.1 www.example.com
127.0.0.1 example.com
127.0.0.1 blog.example.com
127.0.0.1 service.example.com

こんな感じに。特にツールや特別な方法を使って省略形を指定しない時は、サブドメインやwwwをすべて1行ずつ指定しなければいけない。

WordPressの移設などでhostsを利用する

WordPressはURLをデータベースに登録するやっかいなCMS。URLではなくて、絶対ルートパス指定/wp-content/themes/example/といった感じに、データを登録してくれたら良いのに、そうではなくて、URLを登録する。

サブドメイン形式でもディレクトリ形式でも絶対的なURLを登録することが目的だったんだろうけれども、移設を考えると鬱陶しい。URLは1箇所だけ設定ファイルを書き換えれば動くってすればいいのにって思う。

さて、WordPressの移設には、

  • hostsの使えるサーバー、つまりIPアドレスが公開領域に与えられているもの
  • サブディレクトリじゃないとアクセスできないサーバーではない
  • ちゃんとhostsを使ってアクセスできる

こういった条件のサイトじゃないとだめ。

DNS切り替えなきゃアクセスできないというサーバーは気をつけること。

hostsをサンプルのとおり、自分のドメインに書き換えた上で参考に保存すると、新たに移設したいサーバーを表示することができる。自分のPCだけhostsが変わっているため、他の人は今のサイトをみたままで、構築が可能になる。

これを使って、準備して、完成したなって思ったらDNSを切り替える。その後に不具合が出ていなければ、古いサーバーとドメインの管理があれば、そちらを廃止するって流れ。