lighttpd用tracの設定

昨日の独自ビルドしたlighttpdでは、logrotate後に下記から始まるメッセージが出てtracにアクセスできなくなる。原因の検証と対策を実施。


[Errno 13] Permission denied: '/root/.python-eggs'

/etc/logrotate.d/lighttpdでは

if [ -f /var/run/lighttpd.pid ]; then \
if [ -x /usr/sbin/invoke-rc.d ]; then \
invoke-rc.d lighttpd reload > /dev/null; \
else \
/etc/init.d/lighttpd reload > /dev/null; \
fi; \
fi;

を実行しているのでrootでinvoke-rc.d lighttpd reloadをテストしてみると同様にエラー。一般ユーザーからsudo経由で実行すると問題なく起動する。環境変数を見比べて見るとrootの$HOMEが悪さしているっぽい。unsetしてみると無事に起動する。

そこでいろいろ探して見たところ、プラグインのキャッシュ(WebAdmin用)の設定を行なわないといけない模様。

とりあえず下記の"PYTHONEGGCACHE"を設定したところ正常にreload出来るようになった。

ligttpd.conf(10-trac.conf)

fastcgi.server = (
"/trac" => (
"trac" => (
"socket" => "/tmp/trac.sock",
"bin-path" => "/usr/share/trac/cgi-bin/trac.fcgi",
"check-local" => "disable",
"bin-environment" => (
"TRAC_ENV" => "/var/www/trac/burrito",
"PYTHON_EGG_CACHE" => "/var/www/",
"LC_TIME" => "ja_JP.utf8",
)
)
)
)