DebianやUbuntuにApache2をインストールしたとき、デフォルトの状態では、ドキュメントルートは、/var/wwwです。例えば、/var/www下にtestフォルダを作った場合、ローカル環境では、ブラウザからhttp://localhost/test又はhttp://127.0.0.1/testとすれば、このフォルダ内のファイルにアクセスできます。
この設定は、さくらのVPSなどでファイルをインターネット上に公開する場合も、基本的には同じですが、セキュリティ面や利便性を考慮して、別のフォルダを公開フォルダにすることもあります。
ということで、Ubuntu/Debianサーバーで、公開フォルダをデフォルトの/var/wwwから/home/hoge/webに変更する手順を説明します。
なお、設定に当たっては、Apache2がローカル環境に前もってインストールされいるという前提で話を進めています。インストールしていない人は過去の投稿「さくらのVPSにUbuntu 12.04をカスタムインストールしてみた」などをご参照ください。
公開フォルダの変更からバーチャルホストの設定まで
では、先ずは、/home/hoge/web内にtestフォルダを作ります。テキストエディタでHello Worldなどと入力した後、名前をindex.htmlとしてフォルダ内に保存しておきます。
次に、ドメイン管理会社のサーバーでDNS設定行い、例えばtestフォルダにサブドメインtest.hogehoge.jpを仕向けます。
続いて、/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>
test.comfの書き換えが終わったら、a2ensiteコマンド で、その内容を登録します。なお、登録解除する場合は、a2dissiteコマンドを使います。
sudo a2ensite test.conf
最後にserviceコマンドで、Apache2の再起動又は設定の再読み込みを行えば、設定は完了です。
sudo service apache2 reload
DNS設定が行き渡るまでに時間がかかる場合もあるので、しばらく時間をおいてブラウザからhttp://test.hogehoge.jpにアクセスして、Hollo Worldと表示されていれば設定は成功です。
この要領で設定してゆけば、ひとつのサーバで複数のドメインのWebページを公開できます。これがいわゆるバーチャルホストの設定です。
【追 記】20121206
.htaccessを使えるようにするには
この記事内では、「/etc/apache2/site-available内のdefaultなどをコピーしてtestファイルを作り」と書いていますが、defaultファイルの初期設定では、バーチャルホスト内で.htaccessが使えない設定になっています。これを使えるようにするには、DocumentRoot直下の内で、AllowOverrideがNoneとなっているところをAllと書き換える必要があります。
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>