Debian/Ubuntuサーバーでバーチャルホストを設定する

DebianやUbuntuにApache2をインストールしたとき、デフォルトの状態では、ドキュメントルートは、/var/wwwとなる。例えば、/var/www下にtestフォルダを作った場合、ローカル環境では、ブラウザからhttp://localhost/test又はhttp://127.0.0.1/testとすれば、このフォルダ内のファイルにアクセスできる。

この設定は、さくらのVPSなどで、ファイルをインターネット上に公開する場合も基本的には同じだが、セキュリティ面や利便性を考慮して、別のフォルダを公開フォルダとすることもできる。

例えば、公開フォルダを/home/hoge/webとする場合の設定手順は次のとおり。

  1. /home/hoge/web/以下にtestフォルダを作る。テキストエディタでHello Worldなどと入力した後、名前をindex.htmlとしてフォルダ内に保存しておく。
  2. ドメイン管理会社のサーバーでDNS設定行い、例えばtestフォルダにサブドメインtest.hogehoge.jpを仕向ける
  3. /etc/apache2/site-available内のdefault(現在はdefault.config)などをコピーしてtest(現在はtest.config)ファイルを作り、内容を変更する。例えば今回の場合だと、次のような内容を追加する。
    <VirtualHost *:80>
            ServerAdmin hoge@hogehoge.jp
            ServerName test.hogehoge.jp
            DocumentRoot /home/hoge/web/test
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
  4. a2ensiteコマンドで、登録する。例えば次のとおり。なお、登録解除する場合は、a2dissiteコマンドを使用する。
    $ sudo a2ensite test.conf
    
  5. serviceなどでApache2を再起動又は再積み込みを行う。
    $ sudo service apache2 reload 
    

DNS設定が行き渡るまでに時間がかかる場合もあるので、しばらく時間をおいてブラウザからhttp://test.hogehoge.jpにアクセスして、Hollo Worldと表示されれば設定成功。

この要領で設定してゆけば、単独のサーバで複数のドメインのWebページを公開できる。これがいわゆるバーチャルホスト設定。

もちろん、Apache2は前もってインストールしておくのは必須。まだの人はこんな記事を参照してもらうとよいかもしれない。

【追 記】

.htaccessを使えるようにするには

この記事内で、「/etc/apache2/site-available内のdefaultなどをコピーしてtestファイルを作り」と書いていたが、defaultファイルの初期設定はバーチャルホスト内で.htaccessが使えない設定になっている。これを使えるようにするには、DocumentRoot直下の内で、AllowOverrideがNoneとなっているところをAllと書き換えてやる。

        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク