レンタルサーバはsuExecでCGIが動いているので、自分のMacOSXのCGI作成環境も同様にsuExecで動作するようにした。
ユーザディレクトリでsuExecを有効にするには、コンパイル時にユーザディレクトリ内のWeb公開ディレクトリを指定する必要があり、この手のsuExec実行オプションはコンパイル時にしか設定できないらしい。suExecはダイナミックライブラリとして組み込むこともできないっぽい。なんて仕様だ。おかげでこのクソ暑い中3回もApacheをコンパイルしてしまったのだ。や、マニュアル読めよって話だけど…。
./configure --prefix=/usr/local/apache2.2 --enable-dav --enable-ssl --enable-so --enable-rewrite --enable-suexec --with-suexec-caller=www --with-suexec-uidmin=500 --with-suexec-gidmin=500 --with-suexec-userdir=Sites
MacOSXでは、--with-suexec-userdirにSitesを指定する。何も指定しないとpublic_htmlディレクトリを指定したのと同じになってホゲる。uidminとかgidminというのは、ユーザID、グループIDが500以上のユーザをsuExecの対象にするというオプション。MacOSXの一般ユーザは500番から始まるので500を指定。callerはApacheの実行ユーザ。この辺のオプションを指定しておけば、とりあえず動くっぽい。他にもオプションがいっぱいあるがよくわからんsuExec。
ちなみにmod_rewriteだけstaticにしてるのは意味は無い、趣味。