我正在尝试使用fcgid设置每个用户的trac实例。 问题是trac需要rw访问trac实例,所以我需要fcgi进程在相应的用户下运行。
我安装了suexec,fcgid和userdir Apache模块(在Debian上)。 我提出了vhost指令
ScriptAliasMatch /~(.*)/trac /home/$1/public_html/trac.fcgi
这个工作在trac.fcgi运行,但不幸的是,在www数据用户。 我如何让fcgid在$ 1用户下启动它?
我正在使用Rackspace的IUS RPM,默认情况下编译和configuration了suexec。
这里是我的mod_fcgidconfiguration的相关部分:
LoadModule fcgid_module modules/mod_fcgid.so AddHandler fcgid-script fcg fcgi fpl php DefaultInitEnv PHPRC "/etc/" FCGIWrapper /usr/bin/php-cgi .php
我build议删除“ScriptAliasMatch”指令,并在全局或UserDir部分使用AddHandler指令。 在我的设置下,任何UserDir文件夹(即〜/ public_html)都会自动为有问题的用户使用suexec。
Trac是用Python编写的,并且支持在mod_wsgi下运行(每个FAQ中的一个项目),所以我会放下几个移动部分,并切换到梦幻般的mod_wsgi,它支持指定一个脚本运行的用户。 我使用这个function的另一个项目,它运作良好。
检查官方的mod_wsgi文档,指出如何做到这一点,我看到文档包含一个关于Trac集成的页面,它有很多的例子,包括指定特定的用户运行。 所以你最好的select是阅读:
使用mod_fastcgi,可以使用以下命令启用FastCGI脚本的Suexec执行:
FastCgiSuexec '/usr/lib/apache2/suexec'
suexec的path可能需要修改,这个例子来自Debian系统。