59
93

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-08-03

ここのところ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を使ったほうが早いでしょう。

以上。

59
93
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
93

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?