OS XのWeb共有でCGIを動かせるようにしてみた

Mac OS XのWeb共有はApacheを使っている。じゃあ、CGIスクリプトをテストするのにWeb共有が使えないかと試してみたら、案外簡単にできた。
ユーザー毎の設定ファイルが以下のディレクトリにあるので、それを書き換えるだけ。

/etc/apache2/users/<ユーザー名>.conf

例えば、ディレクトリ ~/Sites/cgi に拡張子 .cgiCGIスクリプトを置くには、設定ファイルに以下のような記述を追加する(元からある記述はそのまま)。

<Directory "/Users/<ユーザー名>/Sites/cgi/">
    AddHandler cgi-script cgi
    Options ExecCGI
</Directory>

設定ファイルの変更にはroot権限が必要なので、sudoコマンドを使う。

$ cp /etc/apache2/users/nat.conf ~
$ cp ~/nat.conf ~/nat.conf.orig ←念のために変更前の設定ファイルを取っておく
$ vi ~/nat.conf ←設定ファイルの編集
$ sudo cp ~/nat.conf /etc/apache2/users/nat.conf

システム環境設定でWeb共有のチェックボックスをいったんOFFにして、Web共有(Apache)を停止させてから、もう一回ONにして、Web共有(Apache)を再起動。これでCGIが使えるようになった。

例えば、以下のようなCGIスクリプト ~/Sites/cgi/hello.cgi で動作確認。chmod a+xコマンドで、実行権限をつけるのを忘れずに。

#!/usr/bin/ruby
print "Content-type: text/html\n\n"
print '<html><head><title>Hello!</title></head><body>'
print '<p>Hello, world!!</p>'
print "<p>Current time : #{Time.now}</p>"
print '</body></html>'