我在Linux上安装Reviewboard,我抄在安装包中提供的配置以httpd.conf中的Apache2无法运行WSGI脚本
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/usr/www/reviewboard/htdocs"
# Error handlers
ErrorDocument 500 /errordocs/500.html
WSGIPassAuthorization On
WSGIScriptAlias "/reviewboard" "/usr/www/reviewboard/htdocs/reviewboard.wsgi/reviewboard"
<Directory "/usr/www/reviewboard/htdocs">
AllowOverride All
Options -Indexes FollowSymLinks
Allow from all
</Directory>
# Alias static media requests to filesystem
Alias /reviewboard/media "/usr/www/reviewboard/htdocs/media"
Alias /reviewboard/errordocs "/usr/www/reviewboard/htdocs/errordocs"
Alias /reviewboard/favicon.ico "/usr/www/reviewboard/htdocs/media/rbcommons/images/favicon.png"
</VirtualHost>
然而,当我访问的“http://网站/ reviewboard /htdocs/reviewboard.wsgi”,它只是给我以纯文本格式的文件,而不是运行脚本
我已经检查了mod_wsgi的是通过在运行的Apache2‘apache2ctl -t -D DUMP_MODULES’
难道我错过任何其他配置?
非常感谢。我现在得到了它的工作。我认为'WSGIScriptAlias“/ reviewboard”“/usr/www/reviewboard/htdocs/reviewboard.wsgi/reviewboard”'很好。 – Alvin
顺便说一句,我想你提到了一个好点。你的意思是我应该把目录htdocs放在DocumentRoot下面?并保留其他目录,如日志,conf,数据和日志在另一个地方像/ etc/revieboard?但用户仍然可以通过这种方式查看reviewboard.wsgi。我如何防止这种情况? – Alvin
拥有WSGIScriptAlias并不一定好。在目标WSGI脚本的末尾重复安装点具有Apache的特殊含义。如此特殊而神奇,它甚至没有记录在mod_wsgi网站上,只是在需要的时候才向人们解释。如果它有效,那么它只能表示所有的urls.py网址都以“reviewboard”为前缀,否则无法看到它是如何工作的。 –