ウェブサーバでディレクトリのインデックス一覧を表示するためには h5ai が便利

結論

以下のオフィシャルページへどうぞ。

GitHubにリポジトリもありますが、要ビルドですし、ドキュメントを読むのに結局はオフィシャルページに訪れることになりますので、こちらで。

使用方法

h5aiを使うのはとても簡単です。

1. ダウンロードする

オフィシャルページの右側にあるボタンを押してアーカイブをダウンロードします。

f:id:gregminster:20171106140332p:plain

2. 配置する

「インデックス一覧を見せたいディレクトリのルート」に、ダウンロードしたファイルを展開して置きます。「インデックス一覧を見せたいディレクトリのルート」には_h5aiというディレクトリが見えることになります。

3. 配置状況の確認をする

配置ができたら_h5aiが置いてある場所をルートとした際の_h5ai/public/index.phpにウェブブラウザでアクセスしましょう。パスワードが求められますが、空っぽで構いません*1

4. 配置状況で no となっている箇所を修正する

「3.」により、一部の設定内容で「no」という赤文字が出てしまっているかもしれません。私の場合はPublic Cache DirectoryPrivate Cache Directoryが「no」となっていました。これを修正します。

f:id:gregminster:20171106141827p:plain

私の例の場合は以下のコマンドで OK です。その他、ライブラリが入っていない場合は入れてあげましょう。オールグリーンになれば OK です。

$ chmod 777 _h5ai/private/cache
$ chmod 777 _h5ai/public/cache

5. 「インデックス一覧を見せたいディレクトリのルート」にアクセスした場合の参照先を修正

ディレクトリのルートにアクセスした場合、ウェブサーバの標準的な設定ですとindex.htmindex.htmlindex.phpなどを自動的に参照する設定になっているかと思います。h5aiを設置している場合は、/_h5ai/public/index.phpという場所にアクセスさせてやる必要があります。

したがって上記の内容を設定ファイルに追記します。

Apache2の場合ですと/etc/apache2/sites-enabled配下のファイルを修正します。デフォルトの000-default.confを修正する場合を考えます*2<VirtualHost> ~ </VirtualHost>でくくられている中に、以下のように書き加えます。

<VirtualHost *:80>
  (省略)
  DirectoryIndex  index.html  index.php  /_h5ai/public/index.php
  (省略)
</VirtualHost>

書き終えたらApache2を再起動しましょう。

6. h5aiが適用されているかを確認する

それでは「インデックス一覧を見せたいディレクトリのルート」にウェブブラウザでアクセスしましょう。以下のような表示になっていれば成功です。

f:id:gregminster:20171106143156p:plain

f:id:gregminster:20171106143200p:plain

補足

以下、「設定ファイル」とは、_h5ai/private/conf/options.jsonを指します。

1. 配置状況の確認画面でのパスワードの設定

「3.」で求められるパスワードは最初は空っぽですが、「設定ファイル」の中で指定できます。以下の部分ですね。

    /*
    Password hash.

    SHA512 hash of the info page password, the preset password is the empty string.
    Online hash generator: http://md5hashing.net/hashing/sha512
    */
    "passhash": "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e",

書いてあるとおり、SHA512 でハッシュ化したハッシュを設定します。ハッシュ化する方法としてウェブ上のサービスを使うという例が挙げられていますが、もし抵抗があるならば以下のようにコマンドを叩いてもいいでしょう。その際は-nオプションを忘れないようにして下さい。

$ echo -n hello | openssl sha512
(stdin)= 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043

2. 設定項目は豊富

「設定ファイル」を覗いてみると分かるように、設定できる項目は多岐に渡ります。いろいろと試してみてカスタマイズしてみるのが良いと思います。

*1:後述

*2:別ファイルを作って同じ設定を書いてももちろんよいです

Powered by はてなブログ