2007-12-23

Top > Weblog > 2007-12-23

xrea に絶望した。PukiWiki Static! 続き。

xrea.com にて mod_php でディレクトリを作成するとディレクトリ所有者が apache になるが、 mod_php 実行中の権限は、php ファイルの所有者、つまりアカウントユーザ名であり、 ここで SAFE_MODE が有効になっていると(xrea の一部のサーバでは有効)、mod_php 実行ユーザ名とディレクトリの所有者名が一致していない場合ディレクトリ内にファイルを作成できず、mod_php がディレクトリを作成したにもかかわらず、mod_php がそのディレクトリ内にファイルを作成できないという意味不明な挙動になるようです。

そこで、mod_php にディレクトリを作成させるのではなく、アカウントユーザにディレクトリを作成させるために mkdir を CGI として実行させる、mkdir.cgi を作成、梱包しました。statichtml.inc.php がそれを利用して mkdir することもできるように変更を加えました。

他にも index.php のファイル所有者を apache にしてしまうというアプローチもあるかと思い、index.php を mod_php にコピーさせ、所有者が apache の index.php を作って試してみたのですが、その場合、他のディレクトリ等もすべて所有者を apache に変更させなければならないわけでそちらもまた大変そうでありました。そちらのアプローチをとろうかとも思ったのですが、xrea.com は所有者が apache のファイルを定期的にアカウントユーザに変更させる処理も行っているという記述もあったので、これでは解決できないと判断しました。

ちなみに、所有者が apache のファイルを定期的にアカウントユーザに変更させる、という処理をされてしまっては touch ができなくなる(タイムスタンプを変更しない編集ができなくなる)のですけどね。絶望した!