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

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>
タイトルとURLをコピーしました