Mac OS XにErlyWebをインストール
ErlyWebはErlang用のWebフレームワーク. ちょいと使い心地を試してみたかったのでそのインストールメモ. Mac OS X Leopardにインストールしまうす.
参考はKLabさんところ.
Yawsのインストール
Erlangで書かれたWebサーバー. とある検証では同時接続数がApacheの限界値の20倍ぐらいでも平気だとか. ErlyWebはコイツの上で動作するのでインストール.
ちょっと前はファイルをダウンロードして, 適当な場所に配置していたような気がするけど, いつからかMacportsでインストールできるみたいだ(もしかして最初から?).
$ sudo port install yaws
ErlyWebのインストール
本命はErlyWebのサイトからダウンロード. erlyweb-0.7.1.tar.gz(現在)を落として伸張し, Erlangのlibディレクトリに突っ込んでおく. 下記のErlangのlibディレクトリまでのパスはボクの環境の場合なので, 適せん変更.
$ wget http://erlyweb.googlecode.com/files/erlyweb-0.7.1.tar.gz $ tar zxf erlyweb-0.7.1.tar.gz $ sudo mv erlyweb-0.7.1 /opt/local/lib/erlang/lib
ErlyWebでアプリケーションを作成
Erlangのシェルからerlywebモジュールの関数を呼んで作成する.
$ mkdir erlyweb_apps $ erl Eshell V5.6.4 (abort with ^G) 1> erlyweb:create_app("hoge", "/Users/takkkun/erlyweb_apps"). ディレクトリがどんどん作成されていく 2> q().
erlyweb_appsの下にhogeというディレクトリが作成され, その中に必要なファイルやらディレクトリができる. Yawsのためにログ吐き出し先も作っておこう. コレは手動.
$ mkdir erlyweb_apps/hoge/log
またErlyWebのアプリケーションはコンパイルが必要(つかErlangだからか)なので, コンパイルしておく. コレはファイルの内容が変更されるたびにやらなきゃいけない.
$ erl Eshell V5.6.4 (abort with ^G) 1> erlyweb:compile("/Users/takkkun/erlyweb_apps/hoge", []).
Yawsの設定ファイルを書く
yaws.confという名前のファイルを作成し, 設定を記述する. とりあえず下記のように書いてみた. 他の設定はココらへんを参考にしてみたり.
どこに置いておけばいいのかはよくわからんのだけど, とりあえずerlyweb_apps/hogeの配下に作成. Railsっぽく1アプリケーションに1サーバーみたいにしておく(本当はよくないんだろうけど). 後でどこに置いておけばいいか調べておくか.
$ vi erlyweb_apps/hoge/yaws.conf
logdir = /Users/takkkun/erlyweb_apps/hoge/log <server localhost> port = 8000 listen = 0.0.0.0 docroot = /Users/takkkun/erlyweb_apps/hoge/www appmods = <"/", erlyweb> <opaque> appname = hoge </opaque> </server>
Yawsを起動する
yawsと打てば起動する. iオプションはインタラクティヴモードのコトらしいです.
yawsを実行したときに, カレントディレクトリにyaws.confがあれば読込んでくれるようだ. というコトでカレントディレクトリをerlyweb_apps/hogeにしておく.
$ cd erlyweb_apps/hoge $ yaws -i Eshell V5.6.4 (abort with ^G) 1> =INFO REPORT==== 9-Nov-2008::01:41:29 === Yaws: Using config file ./yaws.conf yaws:Add path "/opt/local/lib/yaws/examples/ebin" yaws:Running with id=default (localinstall=false) Running with debug checks turned on (slower server) Logging to directory "/Users/takkkun/erlyweb_apps/hoge/log" =INFO REPORT==== 9-Nov-2008::01:41:29 === Ctlfile : /Users/takkkun/.yaws/yaws/default/CTL =INFO REPORT==== 9-Nov-2008::01:41:29 === Yaws: Listening to 0.0.0.0:8000 for servers - http://localhost:8000 under /Users/takkkun/erlyweb_apps/hoge/www 1>
そしてWebブラウザでhttp://localhost:8000/にアクセスすると, ErlyWebのルートらしきものが表示される, と. とりあえずこんなもんかー.