Apache

[Apache] VirtualHostで独自設定したドメインから直接LocalHostにアクセスしてみよう!

どうも、シローです。

今回はApachのVirtualHostを使った、自分で設定したドメインからLocalHostにアクセスできるようにしてみたので、それをまとめようと思います。

1. VirtualHostを有効にする

VirtualHostとは・・

通常ドメイン(IPアドレスのあだ名、216.58.199.227 => google.co.jp のような)はWebサービスを提供しているサーバ一台につき、一つ割り当てられます。

しかし、複数のドメインを取得して一つのIPアドレスで使いまわすようなこともできます。

それを可能にするのが、ApacheのVirtualHostです。

VirtualHostを設定することで、(127.0.0.1 => test.localhost, 127.0.0.1 => hoge.localhost)のようにhoge.localhostやtest.localhostと別のドメインで同じローカルのサーバにアクセスすることができます。

有効方法

最近のApacheのバージョンでは基本設定でVirtualHostが有効になっていると思いますが、一応、念のため有効になっているか確認することをおすすめします。

確認はUbuntuの場合、"/etc/apache2/apache2.conf"を見てください。(OSやバージョンによって、ファイルのパスが異なります。詳しくは調べましょう)

大体220 ~ 227行目らへんに"IncludeOptional sites-enabled/*.conf"という記述が見られます。

もし、それがコメントアウトされている場合は外しましょう。

これで、有効になります。

2. VirtualHostの設定ファイルを作成する

VirtualHostの設定ファイルは"/etc/apache2/sites-available/"に作成します。

"/etc/apache2/sites-available/test.localhost.conf"を作成して以下のように記述してみましょう。

3. 設定ファイル用のPATHにファイルを作成する

2の段階でtest.localhostでアクセスされると"/var/www/html/test"のファイルを読み込むようになりました。

ので、そのアクセス先にファイルがないと当然エラーになってしまいますので。

以下のようにディレクトリやファイルを設定しましょう。

 

4. 設定ファイルを有効にする

2で作成した段階では設定がApacheに読み込まれていません。

以下のコマンドで有効にしましょう。

5. 独自ドメインを "/etc/hosts"を編集してアクセスできるようにする

DNSについて・・

4の段階で"test.localhost"にアクセスしてもエラーが帰ってきて来ます。

なぜなら、"test.localhost"というドメインがサーバに認識されていないためです。

"test.localhost"でアクセスできるためには、"test.localhost"というドメインがローカルホストのIPアドレスという紐付けが必要になります。

そのためのシステムを"DNS(Domain Name System)"と言います。

PCがブラウザで"test.localhost"にアクセスした場合、PCはDNSサーバに「"test.localhost" ってドメインはどこのIPアドレス?」て感じで問い合わせます。

そして、DNSサーバは「"test.localhost"ってドメインは"xxx.xxx.xxx.xxx"だよ!」て感じで返答します。

そうするとブラウザが"xxx.xxx.xxx.xxx"ていうIPアドレスのサーバにアクセスしてWebページを表示します。

DNSの設定ファイルである"/etc/hosts"

さて、上記のようにブラウザはDNSに問い合わせてドメインにマッチするIPアドレスを返してくれるのですが、

DNSは複数あってブラウザは巡回的にそれらを回ってIPアドレスを照合します。

その際に一番はじめにアクセスするDNSはブラウザを開いている自分のPCです。

"localhost"ってブラウザに打つとapacheにアクセスできるのも"/etc/hosts"にそういう設定がされているためです。

なので、"/etc/hosts"を開いてみて以下のように編集してみましょう。

 

6. ブラウザで "test.localhost"にアクセス

実際に、ブラウザで "test.localhost"にアクセスしてみましょう。

3 で作成したindex.htmlの内容が読み込まれていると思います。

-Apache
-

© 2023 Shiro's secret base