深く考えずに 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 で聞いた