LoginSignup
13
14

More than 5 years have passed since last update.

【Apache/Virtualhost】Apacheを使って1台のPCで複数サイトを運営してみる

Last updated at Posted at 2016-04-28

はじめに

MacOSⅩ(El Capitan)のApacheを使って複数のサイトを運営する方法が必要だったので、いろいろ調べながらやってみました。
なお、とりあえずサーバを立ち上げるだけなら「Yosemite(MacOS:10.10.X)でApacheを使えるようにしてみる」をどうぞ!
El Capitanも立ち上げ方は変わりません。

環境

MacOSⅩ(El Capitan)
Apache 2.4.16 (Unix)

前準備

Apacheの初期設定を終わらせておきます。
参考:Yosemite(MacOS:10.10.X)でApacheを使えるようにしてみる
ポートの開放方法は、ご契約先のプロバイダにお問い合わせください。
まあたいていブラウザからデフォルトゲートウェイのアドレスにアクセスすれば設定できるとは思いますが……

設定

では実際にVirtualhostの設定を行っていきます。

サーバ用のフォルダの作成

~/Sites/のような、Webサイト用のフォルダを2つ作ります。
私の場合、片方は普通のWebサイト用、もう片方はファイルサーバを作りたかったので、
- ~/Sites/
- ~/FileServer/
という2つのフォルダを用意しました。スクリーンショット 2016-04-28 18.15.21.png

httpd.confの設定

安定のhttp.confをいじります。

terminal
sudo vim /etc/apache2/httpd.conf

大体500行目くらいの、
#Include /private/etc/apache2/extra/httpd-vhosts.conf
「#」を消します

スクリーンショット 2016-04-28 18.20.42.png

httpd-vhosts.confの設定

先ほど#を削除したhttpd-vhosts.confを編集します。

terminal
sudo vim /private/etc/apache2/extra/httpd-vhosts.conf

このファイルの一番下に、設定をつらつらと書いていきます。
今回の場合は、

  • ~/Sites/
  • ~/FileServer/

の2つのフォルダに対してサイトを振り分けたいので……

httpd-vhosts.conf
<virtualhost *:80>
    DocumentRoot "/Users/ユーザID/Sites/"
    ServerName 割り当てるDNSサーバのアドレス
    ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log"
    CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common
</virtualhost>


<virtualhost *:80>
    DocumentRoot "/Users/ユーザID/FileServer/"
    ServerName 割り当てるDNSサーバのアドレス
    ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log"
    CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common
</virtualhost>

と言った具合にします。
割り当てるDNSサーバのアドレスに関しては、NoIPといったサービスを私は使っているので、そこで取得したURLを指定するとうまくいきました。

スクリーンショット 2016-04-28 18.34.31.png

【注意】
もし、ディレクションをしていない場合、

httpd-vhosts.conf
<virtualhost *:80>
    DocumentRoot "/Users/ユーザID/Sites/"
    ServerName 割り当てるDNSサーバのアドレス
    ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log"
    CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common
    <Directory /Users/ユーザID/Sites/>
        Require all granted
    </Directory>
</virtualhost>


<virtualhost *:80>
    DocumentRoot "/Users/ユーザID/FileServer/"
    ServerName 割り当てるDNSサーバのアドレス
    ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log"
    CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common
    <Directory /Users/ユーザID/FileServer/>
        Require all granted
    </Directory>
</virtualhost>

という風にしないと、Forbiddenが表示される場合があります。

アクセス先を切り替える(hostsファイルの設定)

では設定してきたものを関連付けます。

terminal
sudo vim /etc/hosts

hostsファイルの最後に、以下の情報を追加します。

hosts
127.0.0.1 ~/SitesへのDNSのURL
127.0.0.1 ~/FileServerへのDNSのURL

スクリーンショット 2016-04-28 18.43.33.png

Apacheの再起動

terminal
#設定ファイルに間違いがないかチェック
$ sudo apachectl configtest
Syntax OK    #これが出ればOK

$sudo apachectl restart

これでアクセスできると思います。

参考

13
14
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
13
14