我有一个django 1.1网站,我想在wsgi中运行(因为这似乎是apache上推荐的部署)。我希望它以www用户的身份运行(apache正在以www-data的形式运行)。理想情况下,我希望在http://hostname/~www/ (~www/public_html)以及http://virtualhostname/的基础上完成这一工作。我还希望这对以后可能使用wsgi的其他用户有效。我能让它发生吗?我一直盯着文档,试图弄清楚从哪里开始,但是我很难将userdir和wsgi组合起来,让我以用户xxx的身份运行~ xxx /public_html/index.wsgi,对于每个用户xxx。
发布于 2011-07-10 14:37:31
首先,查看mod_wsgi守护进程模式。这允许您委托WSGI应用程序在不同的守护进程中运行。然后,可以使这些进程作为指定的用户运行,而不需要使用suxec。请参见:
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Delegation_至_守护进程_流程
如果用户控制安装应用程序的位置,就无法使用UserDir配置的目录,而需要使用AddHandler方法来设置mod_wsgi。请参见:
http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_阿帕奇_别名_指令
UserDir指令隐式地提供别名指令,所以您只需要担心AddHandler指令等等。
但是,请注意,由于Apache中的优先级规则,您很可能无法对可能隐藏用户目录的整个虚拟主机使用WSGIScriptAlias at '/‘。仅仅意味着您需要依赖AddHandler,如果安装在站点根目录上,就需要使用mod_rewrite修复,如文档后面部分所描述的那样。
建议您使用官方的mod_wsgi邮件列表了解更多细节。
https://serverfault.com/questions/288751
复制相似问题