Ubuntu の Nginx で autoindex を使い、ファイル・ディレクトリの一覧を表示する
Nginx で autoindex 機能を使うとディレクトリへアクセスされた際、そのディレクトリ中に存在するファイルやディレクトリの一覧を表示させることが出来ます。 今回は (Ubuntu 標準リポジトリでは無く) Nginx 公式リポジトリから Nginx をインストールし、autoindex を有効化する手順をメモしておきます。
検証環境¶
| 対象 | バージョン |
|---|---|
| Ubuntu | 24.04.2 LTS |
| Nginx | 1.26.3 |
Nginx のインストール¶
Nginx 公式リポジトリから Nginx をインストールする手順は 公式サイト に記載されています。 記載されている手順に従ってインストールします。
sudo apt -y install curl gnupg2 ca-certificates lsb-release ubuntu-keyring && \
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null && \
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list && \
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx && \
sudo apt update && \
sudo apt -y install nginx
デフォルトの index.html を削除する¶
ファイル・ディレクトリを表示する際に邪魔になる為、デフォルトの index.html ファイルは削除します。
Apache 風ドキュメントルートのシンボリックリンクを作成¶
Nginx のドキュメントルートはデフォルトで /usr/share/nginx/html に設定されています。 これは階層が深く、やや覚えづらい為、Apache のドキュメントルートである /var/www/html が使えるようにシンボリックリンクを追加します。
autoindex を有効化する¶
autoindex を有効化します。 Nginx の設定ファイルは /etc/nginx/conf.d/default.conf にあります。 これを以下のように修正します。
変更前 (コメント除外版)¶
/etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
変更後¶
/etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Nginx を開始する¶
Web ブラウザでアクセスする¶
Web ブラウザでディレクトリへアクセスしてみると以下のように「ディレクトリ内のファイル/ディレクトリ一覧」が表示されます。
