前書き
一つのサーバーでディレクトリを分けてコードを管理するため、バーチャルホストを設定してみた!
Apacheはバージョンによって、いじるファイルの中身が違うので自分のApacheのバージョンを確認してからチャレンジしてみよう。
Apacheのバージョンを調べるコマンドは下記の通り。
$ httpd -v
Server version: Apache/2.4.6 (CentOS)
そもそも、バーチャルホストって??
バーチャルホストという用語は、1 台のマシン上で (sample_01.test.com と sample_02.test.com のような) 二つ以上のウェブサイトを扱う運用方法のことを指します。
今回は一つのドメインを使い回してブラウザ表示するお話です。
設定する時に必要なもの、いじるファイル。
必要なもの
・ドメイン
いじるファイル(サーバー内)
・httpd.conf
・表示するディレクトリ
いじるファイル(ローカル環境内)
・hosts
設定してみましょう!
では、早速やってきましょう〜!
1. ドメインの購入、設定。
まず、ドメインを購入しましょう。
今回はドメインtest.com
IPアドレスとドメインを関連付けるのはレンタルサーバー内でできるので、そちらで設定しましょう。
ちなみに、設定後は紐付くまで少しお時間がかかります。
2. 必要なディレクトリを作成。
次に今回の表示分けするディレクトリ構成
htmlと同じ階層にsample_01とsample_02ディレクトリ作成する。
そしてそれぞれindex.htmlのファイルを作成し、下記のように記入する。
└── var
└── www
├── html
| └── index.html
├── sample_01
| └── index.html
└── sample_02
└── index.html
最終的にそれぞれのURLにアクセスしたときの各ディレクトリ内のファイルが表示されることを確認するために、
それぞれのindex.htmlに下記を記入。
<p>html/index.htmlページです</p>
<p>sample_01/index.htmlページです</p>
<p>sample_02/index.htmlページです</p>
3. サーバーネームとルートディレクトリを紐づける
次に、サーバー内でどのURLにアクセスすればどのファイルが表示されるかを指定する。
どのURLにアクセス -> ServerName
どのファイルが表示 -> DocumentRoot として記入する。
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName test.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/sample_01
ServerName sample_01.test.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/sample_02
ServerName sample_02.test.com
</VirtualHost>
これをhttpd.confに記入した後、service httpd restart
でApacheを再起動する。
4. 自分のローカル環境にあるhostsファイルの編集
バーチャルホストを設定するサーバーのIPアドレス ServerName
を自身のローカル環境のhostsファイルに入力する。
111.222.333.44 sample_01.test.com
111.222.333.44 sample_02.test.com
確認してみましょう!
各URLにアクセスしてみてこのQiita通り、表示内容が別々になっていればOKです
http://test.com へアクセス
//[html/index.htmlページです]と表示されればOK
http://sample_01.test.com
//[sample_01/index.htmlページです]と表示されればOK
http://sample_02.test.com
//[sample_02/index.htmlページです]と表示されればOK
ちなみに、test.comでアクセスすると自動でhttpsになっていて、セキュリティに引っかかって表示されないことがあるので、URLを確認してhttpになっているか確認してみましょう〜!
以上になります!
なかなか、バーチャルホストの記事を参考にしても動かないことがあったので記事にしてみました。
内容があっているかはわかりませんが何かあれば編集リクエストいただければ幸いです