Mac OS X で CGI
ngtくんが自分のMacでcgiを動かしたいがわからないことがあるというので、設定につきあう。ところが僕が見ても謎な動作をしていて面食らう。ファイルのパーミッションは644になっているのに、cssやtxtにアクセスするとForbiddenになるのだ。
ググって見ると、どうやらこれは仕様らしい。
ScriptAlias
ScriptAlias ディレクティブを使用して、 CGI プログラム用の特別な別ディレクトリを Apache に設定します。 Apache は、このディレクトリ中の全てのファイルを CGI プログラムであると仮定します。そして、この特別なリソースが クライアントから要求されると、そのプログラムの実行を試みます。
(snip)
ファイルが存在し、実行可能であり、 決められた方法で出力を返します。 そうでなければ、Apache はエラーメッセージを返します。
cgi-bin以下のcgi以外のファイルを読もうとしてもエラーになるらしい。恥ずかしながら知らなかった……。確かに、cgi-bin以下にデータを置いていて情報が漏洩するなどという事故が防げるのでセキュアではあるが、余計なお世話な気もする。
結局、ユーザのSitesディレクトリ内で実行するという方法で回避した。