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
ファイルは削除します。
rm -f /usr/share/nginx/html/index.html
Apache 風ドキュメントルートのシンボリックリンクを作成¶
Nginx のドキュメントルートはデフォルトで /usr/share/nginx/html
に設定されています。 これは階層が深く、やや覚えづらい為、Apache のドキュメントルートである /var/www/html
が使えるようにシンボリックリンクを追加します。
mkdir -p /var/www/ && \
rm -rf /var/www/html/ && \
ln -s /usr/share/nginx/html /var/www/
autoindex を有効化する¶
autoindex を有効化します。 Nginx の設定ファイルは /etc/nginx/conf.d/default.conf
にあります。 これを以下のように修正します。
変更前 (コメント除外版)¶
/etc/nginx/conf.d/default.conf | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
変更後¶
/etc/nginx/conf.d/default.conf | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Nginx を開始する¶
systemctl start nginx.service
systemctl enable nginx.service
Web ブラウザでアクセスする¶
Web ブラウザでディレクトリへアクセスしてみると以下のように「ディレクトリ内のファイル/ディレクトリ一覧」が表示されます。