あるWeb用のプログラムの検証をしたいがためにPerl5.8にあげてテストしていたんだけど、apache権限で作られたファイルをいちいちrootになって消すのがまんどくさんくなってきたのでsuEXECの設定を試みる。
ns.starsugar.jpなサーバはApache2系でここにのっかってるサイトはすべてVirtualHostで運用してる。で、suEXECもバーチャルサーバ用の設定をしないといけない。
configureは適宜に読みかえて
./configure --enable-modules=all --enable-mods-shared=all --enable-suexec --with-suexec-caller=httpd --with-suexec-userdir=virtualサーバのあるディレクトリ --with-suexec-docroot=virtualサーバのあるディレクトリ
<VirtualHost>ディレクティブに以下を追加。1.3系とは記述が違うので注意する。
<VirtualHost> SuexecUserGroup ユーザ グループ </VirtualHost>
SuexecUserGroupはmod_suexecを使うようなのでmoduleがloadされている場所にmod_suexecがloadされるように追加されているかをチェックする。
LoadModule suexec_module modules/mod_suexec.so
Apache2のドキュメントとかみてもこの設定でよいはずなんだけど...まともに動かないです(泣。パーミッションの設定を変えたら、パーミッションエラーになってしまうし。error_logにはsuexecがちゃんと起動されているのに..。あと、うちはPHPが主なので使っても意味なし。(PHPはDSOにしてるのでダメみたいです)
もうちょっと、別のcgiとか動かして検証しよう。
つか、漏れのgidがデフォルト値より小さかった...orz
あと、perlのパスがまちごてた(自爆