Apache | Apacheの基本設定 | ホストアクセス設定(hostsファイル)

hostsファイルを使用して、ホストへのアクセスを設定する方法について説明する。

hostsファイルを使用したアクセス設定

Apacheをローカル環境にインストールし、ブラウザからアクセスする場合、自分自身を表すlocalhostが使用される。また、localhost以外にも127.0.0.1でアクセスできる。

127.0.0.1はローカルループバック(Local Loopback)アドレスと呼ばれる、自分自身を指す特別なIPアドレスである。ローカルホストにIPアドレスを設定している場合でも、127.0.0.1は常に自分自身を表す。

そのため、Apacheなどをクライアントと同じコンピュータで実行している場合、127.0.0.1でアクセスすると自分のPCにアクセスすることになり、結果として同じコンピュータで実行中のApacheにアクセスできる。

ではlocalhostとは何か。これはIPアドレス127.0.0.1に設定されているホスト名である。そのため、localhostにアクセスすると127.0.0.1にアクセスし、結果的に自分自身へアクセスすることになる。

このホスト名とIPアドレスを定義する場所がhostsファイルである。ホスト名とIPアドレスを定義するにはDNSサーバーなどを使用する方法もあるが、ローカルのhostsファイルに記述することで、DNSサーバーなどを参照せずにIPアドレスに対するホスト名を登録できる。

hostsファイルの場所

Windowsの場合、hostsファイルはC:\Windows\System32\drivers\etcにある。

C:\Windows\System32\drivers\etc>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: XXXX-XXXX

 C:\Windows\System32\drivers\etc 디렉터리

2019-03-19  오후 01:53    <DIR>          .
2019-03-19  오후 01:53    <DIR>          ..
2019-03-19  오후 01:49               824 hosts <<<<<<<<<<<<<<<<< 여기 존재한다.
2019-03-19  오후 01:49             3,683 lmhosts.sam
2019-03-19  오후 01:49               407 networks
2019-03-19  오후 01:49             1,358 protocol
2019-03-19  오후 01:49            17,635 services
               5개 파일              23,907 바이트
               2개 디렉터리  458,572,058,624 바이트 남음

C:\Windows\System32\drivers\etc>

hostsはテキストファイルなので、テキストエディタで開くことができる。

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

hostsファイルには、IPアドレスに対するホスト名を登録できる。形式は次のとおりである。

IPアドレス		ホスト名

デフォルト設定では、127.0.0.1localhostがホストとして登録されている。ここに登録されているため、localhostを入力すると、そのホスト名のIPアドレスが127.0.0.1であることが分かり、結果として127.0.0.1へアクセスできる。

ここで、127.0.0.1はIPv4アドレスであり、::1はIPv6アドレスである。

Windows環境で確認したところ、どちらもコメントになっていた。そのままでは不便が生じる場合があるため、次のように#を削除する。

# localhost name resolution is handled within DNS itself.
127.0.0.1           localhost
#	::1             localhost

Windowsの場合、管理者権限で実行したテキストエディタでなければ編集できないことがあるため注意する。