touchのlighttpdでものぐさにdirectory-listing

もちろんJailbreakが前提。apacheの代替手段であるlighttpdを便利に使う方法。いちいちファイルのリストをつくるのがめんどうなひと向け。

  1. /usr/local/etc/lighttpd.conf に以下の行を追加します
    server.dir-listing = "enable"
  2. lighttpdを再起動します。iPhone/iPod touch自体を再起動すればO.K.
  3. /var/root/Sites/index.htmlを消すか適当な名前にリネームしておきます
  4. /var/root/Sites/ 以下に適当にディレクトリを掘るなり、ファイルを置くなりします
  5. SafariのURLに127.0.0.1と入力

これで、ファイル一覧が見えるはずです。・・・米粒みたいな文字で・・・・これでもかなり拡大(ピンチイン?)してます。

この手のwebサーバにはファイル名ではなくディレクトリ名を指定されたときに、そのディレクトリ内に特定のファイルがあればそれをレスポンスとして返す設定があります。よくあるのはindex.htmlを返す設定です。この仕組みのために、/で終わるURIを指定してもなにかしら表示されるサーバがほとんどです。
では、その特定のファイルがなかったらどうするか?安全なのはなにか適当な「見つかりませんでした」エラーを返してやることです。何事もなかったかのように無視するという手もありますが。あんまりよろしくないのはサーバソフト標準のエラー画面を返しちゃうことだと思います。ソフトのバージョンなんかが表示されたら結構アウトなんじゃないかな?
では、危険かもしれないけれど便利な方法は?というと、その中のひとつがこれです。ディレクトリ内のファイル一覧を表示してしまうこと。まぁ、何事も時と場合によりけり。手持ちのiPhone/iPod touchをドキュメントブラウザにしたくてlighttpdを動かしているようなケースでは、別に個人の責任範囲でどうとでもいいかもしれなかったり。それでも万事O.K.って訳ではないと思うから少しは覚悟が必要でしょう。たとえばですけど、アクセスしてきたクライアント相手に悪意をもってポートスキャンをかけるフリースポットとか、想定できなくもないかと。

という訳で。上述の設定をすると、

  1. index.htmlがあれば表示するんだけどないなぁ
  2. その場合はディレクトリ配下のファイル一覧を表示するんだなぁ

ということになります。おわり。

参考:

なんかhttp://localhost/でアクセスするのに足りないものがあるようなんだけどなんだろう?