Help us understand the problem. What is going on with this article?

Apache 2.2.xでネームベースのVirtual Hostの設定

More than 3 years have passed since last update.

ここのところDocumentRootじゃないと動かない環境をテストすることが多いのでVirtual Hostの設定メモ。

前提

  • CentOS 6.x。別に他の環境でも同じ。
  • Apacheはもう入ってるということで。

やること

大きくは2つ。

  • /etc/httpd/conf/httpd.confの編集(1行)
  • /etc/httpd/conf.d/virtual.confの編集(ファイル名は何でも良い)

httpd.confの設定

まず、そもそもVirtualHostを使いますよ!という宣言をApacheの設定ファイルであるhttpd.confにする。
と入っても簡単。ServerName www.example.com:80 (変わってるかも)

ServerName www.example.com:80
↓
#ServerName www.example.com:80

となっているところをコメントアウト。NameVirtualHost *:80

#NameVirtualHost *:80
↓
NameVirtualHost *:80

となっているところをコメントイン。httpd.confの設定は以上。
これで、Apacheは、俺はVirtualHostを運用している!と認識します。

既に運用していたサーバに上記の設定をすると、今までのDocumentRootは原則無効になります。
新しくVirtualHostとして、既存のサイトも設定してあげる必要があります。

virtual.confの設定

ファイルの名前はなんでもいい。
Apacheは起動時に/etc/httpd/conf.d/以下にある*.confファイルを全て読み込む。
なので、ファイル名はhoge.confとしても、foo.confとしてもいい。ここではvirtual.confとする。
なお、バーチャルホストが増えるようなら、www.aaa.com.conf, www.bbb.com.conf という感じで、ドメイン毎にファイルを用意するもの良い。

そこに、こんな感じで書く。

#1つめのサイト
<VirtualHost *:80>
  ServerName www.hoge.com
  ServerAlias main.com
  DirectoryIndex index.html index.php
  AddDefaultCharset UTF-8
  DocumentRoot /var/www/html/
  <Directory "/var/www/html/">
    AllowOverride All
    Options FollowSymLinks -Indexes
  </Directory>
</VirtualHost>

#2つ目のサイト
<VirtualHost *:80>
  ServerName test.hoge.com
  DirectoryIndex index.html index.php
  AddDefaultCharset UTF-8
  DocumentRoot /var/www/test/
  <Directory "/var/www/test/">
    AllowOverride All
    Options FollowSymLinks -Indexes
  </Directory>
</VirtualHost>

という感じ。後は3つあっても、4つあっても同じ。
必要に応じて、各種Logの位置などもいじります。Override等は<Directory></Directory>で設定します。

コンテンツの準備

DocumentRootに指定したディレクトリが無いと、Apacheが起動時(再起動時)に怒ります。
先に、ディレクトリを作成し、適切なパーミッションを設定の上、index.htmlファイルを用意しておきます。

Apacheの(再)起動

sudo service httpd restart

起動してないならstartで。

テスト

DNSを適切に設定し、しばらく経ってアクセスして、それぞれのコンテンツが見えればOK。
DNSが無い。もしくは持ちきれない人は、ローカル環境の/etc/hostsなどを設定すればいいでしょう。

  • windowsだと、windows¥system32¥drivers¥etc¥hosts(うろ覚え。確かその辺)。
  • Macだと、hosterを使ったほうが早いでしょう。

以上。

zaburo
こんにちは。自分用のメモをだらだら公開しています。
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした