OCamlでCGI
まずは結論から。
ほいで、ここにたどり着くまでの軌跡をば。
#!/usr/local/bin/ocamlrun /usr/local/bin/ocaml
let _ = print_string "Content-type: text/html\n\n";
print_string "Hello, OCaml!!\n";
exit 0;;
まず、最初にこれを書いたけれどなぜか動かない。
#!/usr/local/bin/ocaml
let _ = print_string "Content-type: text/html\n\n";
print_string "Hello, OCaml!!\n";
exit 0;;
Apache曰く、
[Mon Jul 3 23:16:26 2006] [error] (8)Exec format error: exec of /Users/mzp/Sites/owiki/main.ml failed [Mon Jul 3 23:16:26 2006] [error] [client 127.0.0.1] Premature end of script headers: /Users/mzp/Sites/owiki/main.ml
らしいけど、よくわからない。
いったんコンパイルしてやればうまく動いた。
$ ocamlc main.ml -o main.cgi
として、main.cgiにアクセスするとちゃんと動作する。
そして、main.cgiの先頭には「#!/usr/local/bin/ocamlrun」と書いてあったので、この二つを組み合わせてみたら、ちゃんと動作した。
あれ?なんでocamlなんだろ。ocamlcじゃないんかな?