サーバIPでローカルのhostsを切ってアクセスをお願い致します。
別の方がインフラを構築し、そのサーバにPHPで作成したアプリケーションを配置する、といった作業をする必要がありました。
アプリケーションの動作確認の方法がわからなかったので確認したところ、このような回答が返ってきました。
この人は何を言っているんだ…と少々悩みました。
とりあえず「ローカルのホストを切る」でググってみる。
そしてhostsファイルの話が出てきて、ようやく意味を理解しました。
以前、一度だけhostsファイルを触ったことがあったので、存在や使い方は知っていました。
hostファイルに対象のIPとドメインを設定してアクセスしてくださいということ。
hostsファイルとは
Macの場合、/private/etc/hostsに配置されています。
IPとドメインを紐付けることができ、こちらの設定はDNSより優先されます。
例えばローカルホストは 127.0.0.1, localhost どちらにアクセスしても同じですよね。
これはhostsファイルでそのように設定されているからです。
実際にこのような記述があると思います。
127.0.0.1 localhost
こちらを利用することでサーバIPでローカルのhostsを切ってアクセスできるようになります。
実際にやってみる
やることは非常に簡単で1行追記するだけです。
まずはhostsファイルを開きます。
sudoをつけないと編集できないと思うので注意。
$ sudo vi /private/etc/hosts
その後、localhostの設定を真似て追記します。
IPアドレス + スペース + ドメイン のように設定します。
XX.XXX.XXX.XX test.xxxx.jp
あとはtest.xxxx.jpにアクセスするとXX.XXX.XXX.XXの内容が表示されると思います。
なぜhostsを使うのか
私の固定観念として、ドメインがなければIPでアクセスするというものがありました。
そのため、IPでアクセスするものだと思いこんでしまい、なかなか思いつきませんでした。
なぜ、わざわざhostsを切る必要があるのか考えたところ、Apacheの設定が関係していそうです。
こちらのサーバでテスト環境、本番環境をすべて扱っているので、おそらく、アクセスするアプリケーションをドメインによって振り分ける設定がされています。
そのため、ドメインでアクセスしないと、そもそも接続ができない状態となっていました。
そこで、hostsを使ってドメインでアクセスする必要がありました。
まとめ
あまりこのような場面はないと思いますが、リニューアルだったり、リプレースだったりを行う際には必要になるかもしれません。
hostsでの設定はDNSより優先されるので、使い方によっては非常に便利です。
使う機会は少ないですが、DNS関連の作業をする際には使いこなしたいですね。