JavaScript が無効になっているよ!

Apache2.4 バーチャルホスト

 ·  ☕ 2 分(読了時間)  ·  🐨 Puliyo

ハードウェアの進化により、マシン一台で複数サーバープロセスを持つことが可能になった。

ソフトウェアもオープンソースやら共同開発でかなり便利になってきている。

昔は設定がめんどくさかったバーチャルホストが簡単に作れてしまう。

というわけで Apache 2.4 でバーチャルホストを作成する方法を簡単に書いていこうと思う。


Apache 2.4 でバーチャルホスト


ホスト test1.com と test2.com を一つのApacheサービスでホストする。

  1. ルートディレクトリを作成

    基本的にはウェブコンテンツは /var/www/ 配下に置く。

    バーチャルホストでは場所を共有して使えない(技術的には共有できるがバーチャルホストである意味がなくなってしまう)のでウェブコンテンツを配置するディレクトリを別々に作成する。

    /var/www/ の下にサブディレクトリを作成してもいいが、自分は /srvwww ディレクトリを作成してその配下に別々のルートディレクトリを作成する。

    eg.

    #> cd /srv
    #> mkdir www
    #> mkdir www/test1
    #> mkdir www/test2
    
  2. ドキュメントルート(ルートディレクトリ)配下にウェブコンテンツを作成

    #> nano /srv/www/test1/index.html
    #> nano /srv/www/test2/index.html
    
  3. Apache 構成ファイルでバーチャルホストを定義

    Apache 2.4 では /etc/apache2/sites-enabled/ 配下の構成ファイルをもとにサーバープロセスを作成する。

    しかしここに直接ファイルを作成するのは good practice ではない。

    /etc/apache2/sites-available/ 配下に構成ファイルを作成して、完成したら、シンボリックリンクを作成する。

    #> nano /etc/apache2/sites-available/testserver.conf
    #> cd /etc/apache2/sites-enabled/
    #> ln -s ../sites-available/testserver.conf testserver.conf
    

    testserver.conf の中身は以下の通り:

    <VirtualHost *:80>
        ServerName test1.com
        DocumentRoot /srv/www/test1
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerName test2.com
        DocumentRoot /srv/www/test2
    </VirtualHost>
    

    4行だけでバーチャルホストが作成できちゃう便利さ!

    必須のパラメータ:

    • ServerName: クライアントからの Host: ヘッダーと比較し、一致した際、該当VirtualHostエレメントの構成に則りサービスを提供する。 厳密には必須ではない。 ServerNameパラメータを含めなかった場合なにも一致しなかった際のデフォルトのホストとして扱われる。
    • DocumentRoot: ウェブコンテンツが置いてあるルートディレクトリはどこにあるのか定義する

    あとはお好みでアクセス制御とかリダイレクトとかエイリアス等の他パラメータを追加する。
    4. 完成したらドメインとマッピング

    ローカルで試す場合は自マシンの hosts ファイルを編集する。

    #> cat /etc/hosts
    127.0.0.1       localhost   test1.com   test2.com
    ...
    

    公に出す場合はドメインプロバイダーのAレコードとマッピングする。

  4. テスト

    これで設定は完了! 動作テストをする。

    wget -O - http://test1.com

以上!

シェア
支援