目次

  1. バーチャルホスト機能を有効化する
  2. サイトフォルダを用意する
  3. バーチャルホスト設定ファイルを編集する
  4. 動作を確認する

 

Mountain LionでApacheのバーチャルホスト機能を使えるように編集していきます。この機能を使うことによって、Macローカル上で、複数のWebサイトを動かすことが出来るようになります。OSインストール後の初期状態では、Virtual Hosts機能がOFFになっているので、これを有効化して、下記2つのローカルWebサイトを作ります。

これからつくるローカルWebサイトの情報
ホスト名 ドキュメントルート
localweb1.net ~/WebSites/localweb1
localweb2.net ~/WebSites/localweb2

 

1. バーチャルホスト機能を有効化する

httpd.confを編集する

次の手順でhttpd.confを編集し、バーチャルホスト機能をONにします。

1)httpd.confへ移動する
次のファイルへ移動します。

/etc/apache2/httpd.conf

補足:Finderメニュー>移動>ファイルへ移動を開いて上記パスを入力すると、さくっとたどり着けます。

 

2)編集権限を付与する(既に権限があればSKIP)
右クリックメニューで「情報をみる」を選択、右下の鍵マークをクリックしてロックを解除、+アイコンをクリックして自分のアカウントに読み/書きアクセス権を付与する。

 

3)httpd.confを編集する
ファイルを開いて、次の行を探して、コメント記号#を消します。編集したら上書き保存してください。

#Include /private/etc/apache2/extra/httpd-vhosts.conf

このコメントを外すことで、Apache動作中に、バーチャルホスト設定ファイルhttpd-vhostsを読み込んでくれます。

 

 

2. サイトフォルダを用意する

サイトフォルダを作成する

次の手順で、サイトフォルダ(ドキュメントルートとなる)を作成します。
ここでは、~/WebSitesというディレクトリ下に、2つのサイトを作ることにします。

※補足:実際は、自分が自由にできるディレクトリなら、どこでもOK。複数サイトを1カ所にまとめる必要もありません。個人的には、運用上1カ所にまとまっていた方が管理が楽だと思いますが。

1)複数サイトを入れるディレクトリを作成する

mkdir ~/WebSites

2)1つ目のサイトディレクトリを作成する

mkdir ~/WebSites/localweb1

3)2つ目のサイトディレクトリを作成する

mkdir ~/WebSites/localweb2

 

 

3. バーチャルホスト設定ファイルを編集する

WebサイトのURLを決める

まず、作成するWebサイトにアクセスするURLを決めておきます。日頃外部にアクセスするURLと重複しなければ、基本的に何でもOKです。ここでは、下記2つを例として進めます。

http://localweb1.net
http://localweb2.net

 

httpd-vhosts.confを編集する

まずは、(自分に編集権限を付与して)下記ファイルを開きます。

/etc/apache2/extra/httpd-vhosts.conf

ファイルに、下記コードを追記します。

 

httpd-vhosts.conf(追記)

青字がサイトフォルダへの絶対パス、緑字http://を除いたサイトURLです。
※”username“には、自分のアカウントのホームフォルダ名を入れてください。
※dummyで入っている設定は、消してOKです。

<VirtualHost *:80>
    ServerName localweb1.net
    DocumentRoot "/Users/username/WebSites/localweb1"
    ErrorLog "/private/var/log/apache2/localweb1.net-error_log"
    CustomLog "/private/var/log/apache2/localweb1.net-access_log" common
    <Directory "/Users/username/WebSites/localweb1/">
        AllowOverride Fileinfo Options
        order deny,allow
        deny from all
        allow from localhost 127.0.0.1
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    ServerName localweb2.net
    DocumentRoot "/Users/username/WebSites/localweb2"
    ErrorLog "/private/var/log/apache2/localweb2.net-error_log"
    CustomLog "/private/var/log/apache2/localweb2.net-access_log" common
    <Directory "/Users/username/WebSites/localweb2/">
        AllowOverride Fileinfo Options
        order deny,allow
        deny from all
        allow from localhost 127.0.0.1
    </Directory>
</VirtualHost>

 

各設定値の意味

ここで出てきたApacheのディレクティブと引数について紹介します。

補足:ディテクティブとは、httpd-vhosts.confに出てきた”ServerName”や”DocumentRoot”などの指示子のこと。
ディレクティブ 空白 or タブ 引数という形式で指定する。複数の引数を指定するときは、空白を間に入れる。括弧<>はコンテナ指示子で、ディレクティブの1種。

ServerName

ホスト名を指定します。
ここには、先ほど決めたサイトURLからhttp://を省いたパス(=ホスト名)を指定します。

 

DocumentRoot

ドキュメントルートを指定します。
ここには、先ほど作成したサイトフォルダへのパスを指定します。最後はスラッシュを付けません。

 

ErrorLog

対象サイトの動作中にサーバー上で発生したエラーログを書き出すファイルへのパスを指定します。(ファイルは自動作成される)

 

CustomLog

対象サイトのアクセスログを書き出すファイルへのパスを指定します。(ファイルは自動作成される)

 

<Directory “ディレクトリパス”>

特定のディレクトリ内の挙動を決める設定を、<Directory …>〜</Directory>の間に書きます。
ドキュメントルートを指定することで、そのサイト全体の基本的な挙動(アクセス権など)を制御できます。

AllowOverride

.htaccessで許可されるディレクティブの種類を指定します。
※.htaccessは、ウェブサイトの各階層(フォルダ)に置くことで、その下にあるファイル&フォルダの挙動を制御することができるファイルです。ここでは、WordPressを動作させるのに必要なFileinfoOptionsを許可しています。(参考:ネットワークの作成

order

allow(アクセス許可)とdeny(アクセス拒否)が評価される順番を指定します。
deny, allow
始めにアクセス拒否先を指定し、その後でアクセス許可先を決める、という順番で指定するという意味です

deny

アクセス拒否するホストを指定します。IPアドレスやホスト名で指定します。
from all
すべてのアクセスを拒否するという意味です。

allow

アクセス許可するホストを指定します。IPアドレスやホスト名で指定します。
from localhost 127.0.0.1
localhostと127.0.0.1(どちらも自分のコンピュータからのアクセス)を許可する

つまり、

 order deny,allow
 deny from all
 allow from localhost 127.0.0.1

の指定をすることで、自分のコンピュータからのみアクセスを受け入れ、その他は拒否することができます。

 

 

hostsファイルを編集する

hostsファイルを編集して、作成した2つのWebサイトにアクセスできるようにします。

1)下記ファイルに移動して、自分のアカウントによる編集権限を付与し、ファイルを開きます。

/etc/hosts

 

2)hostsファイルに、次のコードを追記します。

hosts
127.0.0.1 localweb1.net

127.0.0.1 localweb2.net

hostsファイルについて
hostsファイルは、URLとIPアドレスの対応表です。
コンピュータがここ書いてあるURLにアクセスする場合は、その行の左側に指定したIPアドレスに変換して、リクエストを送ります。また、127.0.0.1は自分自身を指しています(IPアドレスのルール)。つまり、localweb1.netにアクセスした場合に、そのコンピュータ内にあるサイトを探してくれます。

※補足:ローカルコンピュータ上のWebサイトへのURLには、インターネット上で利用したいサイトと同じURLが使えません。例えば、”127.0.0.1 google.co.jp”と設定しまうと、通常のgoogleのサイトが見られなくなっちゃいます。

 

 

4. 動作を確認する

動作テスト用のHTMLファイルを作成する

適当なHTMLファイルを作成し、各サイトフォルダに保存します。

~/WebSites/localweb1/index.html
<html><body><h1>First local website works!</h1></body></html>
~/WebSites/localweb2/index.html
<html><body><h1>Second local website works!</h1></body></html>

 

サイトにアクセスする

http://localweb1.net
http://localweb2.net

対応するフォルダに置いたHTMLが表示されればOKです。

 

次の記事:第6回 ユーザー共有サイトを新設する

前の記事:第4回 Mountain Lion付属のPHP&Apache2を使えるようにする

 

「MacにWeb開発環境を構築する」の記事