Apacheからsvnを実行すると'Permission denied'エラー発生

2010-04-06 00:00 | tag: (none)

ApacheでSubminやRedmineなど、内部でsvnコマンドやsvnadminコマンドなどのSubversionのコマンドを呼び出すアプリケーションを実行中、以下のようなエラーが発生してSubversion関連の処理が実行できないことがあります。

Can't open file '/root/.subversion/servers': Permission denied

この問題は、Apache実行時の環境変数HOMEの値が /root になっているときに、Apacheを実行しているユーザーが/root以下のファイルにアクセスする権限を持っていないために発生します。HOMEの値がrootになるのは、Apacheを起動するのに通常使われるユーザー root の環境変数の値がそのままApacheに引き継がれたためです。

したがって、Apache起動時に環境変数HOMEに適切な値を明示的に設定することによりこの問題を回避することができます。

CentOSの場合は、 /etc/sysconfig/httpd に以下のような行を追加すると、起動スクリプト /etc/init.d/httpd 実行時に環境変数HOMEに"/var/www"がセットされ、前述の問題を解決することができます。

HOME=/var/www