深く考えずに Mighttpd をさわってみた (1)

(2011-08-12 追記)

そもそも mighttpd は今じゃ古いパッケージで、インストールするべきなのは mighttpd2 だったということを翌日思い出しました。そのようなわけで、以下の記事は、まったく無意味です。

id:h-hirai:20110812:1313075661 をご参照ください。

(追記、ここまで)

Haskell をチェックしている人ならご存知でしょうが、Mighttpd ("まいてぃ"と読むそうです) は Mew や Firemacs の山本和彦さん (ご本人は Haskell の山本さんと呼ばれたいらしい) が作っていらっしゃる、Haskell で書かれた高速な Web サーバみたいです。

インストール

Haskell Platform をインストールしていれば、パッケージ管理システムコマンド cabal もインストールされています。これで Mighttpd もインストールできます。

とりあえず、ドライランしてみる。

$ cabal install --dry-run -v mighttpd
Reading available packages...
Resolving dependencies...
In order, the following would be installed:
c10k-0.4.1 (new package)
hslogger-1.1.4 (new package)
hsyslog-1.4 (new package)
hdaemonize-0.4.4 (new package)
webserver-0.4.4 (new package)
mighttpd-0.4.3 (new package)

なんか、依存パッケージが少しありますが、まぁ、気にせずいきましょう。

$ cabal install mighttpd
(標準出力略)

なお、cabal コマンド実行時に sudo は必要ありません。ホームディレクトリ以下にインストールされます。スタート Haskell でトラヴィスさんがおっしゃっていましたね*1

……で?

すこし Warning は出ているものの、cabal install は特に問題なく終了した模様。

それで、……どうしよう?

とりあえず、~/Library/Haskell/bin/ に mighttpd がインストールされたので、ただ実行してみましょうか?

上記ディレクトリにパスはとおしてあるので、

$ mighttpd 
Usage: mighttpd config_file uri_map

……ふむ。

~/Library/Haskell/ghc-7.0.3/lib/mighttpd-0.4.3/share/ に sample.conf と sample.map があるので、多分、これらが Usage にある config_file と uri_map に対応しますな? とりあえず、これらを trial.conf、trial.map としてコピーしてみましょう。

trial.conf はそのまま、trial.map は以下のように編集してみました。

# Directory mapping
http://localhost/ -> /Users/hirai/MighttpdTrial

で、ファイルを指定して、実行……。

$ mighttpd trial.conf trial.map 

$

さて、エラーとかは出ず、プロンプトが返ってきましたが。

……ダメですね。ブラウザで http://localhost/ にアクセスしてみても、エラー画面しか見えません。ps でもそれらしいプロセスは見当たらないです。

trial.conf を一部、編集して実行してみましょうか?

Debug_Mode: Yes

で、

$ mighttpd trial.conf trial.map 
bind: permission denied (Permission denied)

ふむ。

sudo で実行すれば動きそうだけど、んー、……今日はここまで。

*1:参加してない。Ust で聞いた