HaskellでCGI
今、メインマシンのMacBook Airがありません。
だからデスクの下の奥深くに眠っているUbuntuマシンを久々に引っ張り出してきました。
このマシンはサーバソフトの調査用に使っているのですが、今回はこのマシンを使ってHaskellでCGIを書いてみることにしました。
Apache2の設定
ますは何はともあれ、Apache2でCGIが使えるようにしないといけません。(Apache2自体はUbuntuインストールしたときに一緒に入ってた)
Apacheのサイトを見ながら設定してみます。
http://httpd.apache.org/docs/2.0/ja/howto/cgi.html
結局どの設定が大事なのかよく分からない書き方ですが、チュートリアルなので仕方がない。
ScriptAlias /cgi/ /home/◯◯/cgi/
apache2.confを書き直したらApacheの再起動が必要です。次のコマンドで。
sudo apache2ctl restart
HaskellでCGIを書く
CGIを書くったって大したことはないです。標準出力に文字列を書き込めばいいだけ!
test.hsを以下のように編集します。
#! /usr/local/bin/runghc main = do putStrLn "Content-Type: text/plain" putStrLn "" putStrLn "Welcome Haskell's CGI world!!"
で、以下のURLにアクセス。
http://localhost/cgi/test.hs
とはいえ、初めてのことは何でもはまりますね。この簡単なCGIにもはまりました。
Content-Typeを出力した後は改行が2つ必要なのですでが、これに気付かず4行めを省いていました。なのでいつまで経ってもInternal Server Errorしか出ず。
でも気付いてしまえばなんてことないですね。
これでHaskellの用途が広がった!