Ubuntu で検証用・開発用LAMP環境を構築する 〜 ドキュメントルートを変える
UbuntuのtaskselでLAMPサーバーをセットアップした直後のドキュメントルートは、"/var/www"になっている。しかし、"/var/www"の所有者は"root"で、他ユーザには読み取りしか許可されていない。Windows上でXAMPPを使って、権限を意識しないで使い続けてきた僕は、どうするのが適切なのか少し戸惑った。
いくつかのやりかたがあるらしい
- "/var/www"をそのまま使う
- ドキュメントルートをホーム配下の任意のディレクトリに変える
- "/var/www"の所有者を任意のログインユーザに変える
- 任意のディレクトリに格納したWeb公開用のファイルやディレクトリのシンボリックリンクを、"/var/www"に張る
本命はドキュメントルートを変える方法っぽい。"root"所有のファイルやディレクトリを編集するには"sudo"を使わないといけないし、面倒だ。rootでログインするのはUbuntuのポリシーに反するようだし。ホームディレクトリ以外に通常のユーザが所有するオブジェクトがあるというのも、ちょっと嫌だ。
ドキュメントルートの変更方法
taskselからインストールしたApache2(LAMP server)の設定ファイル群は、"/etc/apache2"配下に置いてある。ドキュメントルートを変えるなら、"/etc/apache2/sites-available"にあるファイル"default"を編集する。実際は、"default"をコピーしたものを編集するほうが無難だし、管理面で現実的かな。
以下はドキュメントルートをホームディレクトリに変更する手順。
~$ cd /etc/apache2/sites-available /etc/apache2/sites-available$ ls -l 合計 12 -rw-r--r-- 1 root root 950 2011-02-23 03:32 default -rw-r--r-- 1 root root 7469 2011-02-23 03:32 default-ssl /etc/apache2/sites-available$
"default"を別名でコピーして編集する。
/etc/apache2/sites-available$ sudo cp default mysite /etc/apache2/sites-available$ sudo nano mysite
ファイルの中の"/var/www"を、"/home/username/www"に変更してやれば良い。
Before
DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
After
DocumentRoot /home/username/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/username/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
"default"を無効(a2dissite,disable)にして、コピーして作った設定ファイルを有効(a2ensite,enable)にする。
/etc/apache2/sites-available$ sudo a2dissite default Site default disabled. Run '/etc/init.d/apache2 reload' to activate new configuration! /etc/apache2/sites-available$ sudo a2ensite mysite Enabling site mysite. Run '/etc/init.d/apache2 reload' to activate new configuration!
設定を反映させるために、次のコマンドを実行する。
/etc/apache2/sites-available$ sudo /etc/init.d/apache2 reload * Reloading web server config apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ] /etc/apache2/sites-available$
"/home/username/www"のなかに適当なファイルを(たとえばindex.htmlやindex.php)置いて、"http://127.0.0.1"へアクセスしてそれが表示されることを確認する。