MacOSXでCGI(Perl)

さっそくMacOSXCGIの動かすための手順をメモしておく。こういうのって最初しかやらないからしばらくすると忘れるんだよね。ともかく、MacOSXにはApache君が最初から入ってるから、設定変更だけでいける。下記、行をそれぞれ見つけ、すべてコメントアウトしてください(#を消せばいい)。

#LoadModule ssl_module libexec/httpd/libssl.so
#LoadModule perl_module libexec/httpd/libperl.so

#AddModule mod_ssl.c
#AddModule mod_perl.c

#AddHandler cgi-script .cgi 

これでオッケー。

<追記>
と、思ったけれど、各ユーザがCGIを実行出来るようにするにはちょっと工夫がいることが分かった(というか分かってはいないが、とにかく動かすことは出来たという状態)。下記のような設定をhttpd.confに追加する必要がある。

<Directory "/Users/*/Sites/*">
    AddHandler cgi-script .cgi
    Options Indexes MultiViews ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

トリッキーで引っかかったのは冒頭の"/Users/*/Sites/*"の最後の*(アスタリスク)。httpd.conf内のサンプルにはついてないし、一般的にもつけてないように思えるんだけど、これをやらないと動作しなかった。しかも、動作したと行ってもCGIが/Users/*/Sites/cgi-bin/**.cgiにある時だけ動作するようだ。**/Sites/直下は駄目っぽい。

まぁ、動いてよかった。