はじめに
Webサーバーを設定するときに頻繁に出てくる「ドキュメントルート」という用語。特にApacheやNginxといったWebサーバーを扱う際には、この概念を正しく理解しておくことが重要です。本記事では、ドキュメントルートとは何か、どのように設定するのか、また関連する設定やセキュリティのポイントについて解説します。
ドキュメントルートとは?
ドキュメントルート(Document Root)とは、Webサーバーが公開するファイルが格納されているディレクトリのことを指します。ブラウザからWebサイトにアクセスしたときに、サーバーはこのディレクトリ内のファイルを提供します。
例えば、Apacheでは一般的に以下のパスがデフォルトのドキュメントルートとして設定されています。
- Linux(Ubuntu/Debian系):
/var/www/html/
- Linux(CentOS/RHEL系):
/var/www/html/
- Windows(XAMPP):
C:\xampp\htdocs\
このディレクトリ内に index.html
や index.php
などのファイルを置くと、ブラウザでアクセスした際にその内容が表示されます。
ドキュメントルートの設定方法
Apacheのドキュメントルート設定
Apacheでは、httpd.conf
または sites-available/default.conf
(Ubuntuの場合)を編集することでドキュメントルートを変更できます。
設定手順
設定ファイルを開く
sudo nano /etc/apache2/sites-available/000-default.conf
DocumentRoot
ディレクティブを変更
DocumentRoot /var/www/mywebsite
Apacheを再起動
sudo systemctl restart apache2
Nginxのドキュメントルート設定
Nginxでは、nginx.conf
や server
ブロック内の root
ディレクティブを変更します。
設定手順
設定ファイルを開く
sudo nano /etc/nginx/sites-available/default
root
のパスを変更
server { listen 80; server_name example.com; root /var/www/mywebsite; index index.html index.php; }
Nginxを再起動
sudo systemctl restart nginx
ドキュメントルートに関するセキュリティの注意点
1. 不要なファイルを置かない
ドキュメントルート内に .env
ファイルやデータベースのバックアップファイル(*.sql
)を誤って配置すると、外部からダウンロードされてしまうリスクがあります。
2. ディレクトリリスティングの無効化
デフォルト設定では、ディレクトリの一覧を表示することがあります。これを防ぐために、Apacheでは Options -Indexes
を設定し、Nginxでは autoindex off;
を指定します。
Apacheの設定
<Directory /var/www/html>
Options -Indexes
</Directory>
Nginxの設定
server {
location / {
autoindex off;
}
}
3. 適切なパーミッションを設定する
ドキュメントルートのディレクトリやファイルの権限を適切に設定し、不正なアクセスを防ぎます。
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
まとめ
ドキュメントルートは、Webサーバーが公開するファイルを格納する重要なディレクトリです。適切な設定を行い、セキュリティ対策を施すことで、安全かつ効率的なWebサイト運用が可能になります。ApacheやNginxでの設定方法を理解し、必要に応じてカスタマイズしてみましょう。