1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

Apache2.4 CentOS7 バーチャルホスト設定してみた!

前書き

一つのサーバーでディレクトリを分けてコードを管理するため、バーチャルホストを設定してみた!

Apacheはバージョンによって、いじるファイルの中身が違うので自分のApacheのバージョンを確認してからチャレンジしてみよう。
Apacheのバージョンを調べるコマンドは下記の通り。

サーバー内で確認
$ httpd -v
Server version: Apache/2.4.6 (CentOS)

そもそも、バーチャルホストって??

バーチャルホストという用語は、1 台のマシン上で (sample_01.test.com と sample_02.test.com のような) 二つ以上のウェブサイトを扱う運用方法のことを指します。

Apache バーチャルホスト説明書

今回は一つのドメインを使い回してブラウザ表示するお話です。

設定する時に必要なもの、いじるファイル。

必要なもの
・ドメイン
いじるファイル(サーバー内)
・httpd.conf
・表示するディレクトリ
いじるファイル(ローカル環境内)
・hosts

設定してみましょう!

では、早速やってきましょう〜!

1. ドメインの購入、設定。

まず、ドメインを購入しましょう。
今回はドメインtest.com

IPアドレスとドメインを関連付けるのはレンタルサーバー内でできるので、そちらで設定しましょう。
ちなみに、設定後は紐付くまで少しお時間がかかります。

2. 必要なディレクトリを作成。

次に今回の表示分けするディレクトリ構成
htmlと同じ階層にsample_01sample_02ディレクトリ作成する。
そしてそれぞれindex.htmlのファイルを作成し、下記のように記入する。

└── var 
     └── www
         ├── html
         |      └── index.html
         ├── sample_01
         |      └── index.html
         └── sample_02
                └── index.html

最終的にそれぞれのURLにアクセスしたときの各ディレクトリ内のファイルが表示されることを確認するために、
それぞれのindex.htmlに下記を記入。

html/index.html
<p>html/index.htmlページです</p>
sample_01/index.html
<p>sample_01/index.htmlページです</p>
sample_02/index.html
<p>sample_02/index.htmlページです</p>

3. サーバーネームとルートディレクトリを紐づける

次に、サーバー内でどのURLにアクセスすればどのファイルが表示されるかを指定する。

どのURLにアクセス -> ServerName
どのファイルが表示 -> DocumentRoot
 として記入する。

etc/httpd/conf/httpd.conf
<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ファイルに入力する。

(private)/etc/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になっているか確認してみましょう〜!

以上になります!
なかなか、バーチャルホストの記事を参考にしても動かないことがあったので記事にしてみました。
内容があっているかはわかりませんが何かあれば編集リクエストいただければ幸いです:sunglasses:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?