DebianやUbuntuにApache2をインストールしたとき、デフォルトの状態では、ドキュメントルートは、/var/wwwとなる。例えば、/var/www下にtestフォルダを作った場合、ローカル環境では、ブラウザからhttp://localhost/test又はhttp://127.0.0.1/testとすれば、このフォルダ内のファイルにアクセスできる。
この設定は、さくらのVPSなどで、ファイルをインターネット上に公開する場合も基本的には同じだが、セキュリティ面や利便性を考慮して、別のフォルダを公開フォルダとすることもできる。
例えば、公開フォルダを/home/hoge/webとする場合の設定手順は次のとおり。
- /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>
- a2ensiteコマンドで、登録する。例えば次のとおり。なお、登録解除する場合は、a2dissiteコマンドを使用する。
$ sudo a2ensite test.conf
- 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>