I'm trying to configure ReviewBoard on a Mac running OS X Leopard (10.5.8) with Python 2.5 and mod_wsgi 3.3 installed. I'm using sqlite and the standard Apache 2 that comes with OS X; the document root is located at /Library/WebServer/Documents/
. Since my machine is already hosting a few other things at other paths within this root, I want to serve ReviewBoard at a path rather than the server root.
I created a site, set the necessary owner and permissions, symlinked the Apache config file, and removed the lines which would host as a server root. Here's my conf/apache_wsgi.conf
:
WSGIScriptAlias "/reviewboard" "/Library/WebServer/Documents/reviewboard/htdocs/reviewboard.wsgi"
<Directory "/Library/WebServer/Documents/reviewboard/htdocs">
AllowOverride All
</Directory>
# Alias static media requests to filesystem
Alias /reviewboard/media "/Library/WebServer/Documents/reviewboard/htdocs/media"
However, I'm unable to get ReviewBoard to come up, only 404 error pages.
When I have the following in conf/settings_local.py:
SITE_ROOT = '/reviewboard/'
FORCE_SCRIPT_NAME = ''
DEBUG = True
and I visit http://example.com/reviewboard/, I get the following in the Apache access_log:
"GET /reviewboard/ HTTP/1.1" 404 1923
and a 404 page in the browser with the following:
Request Method: GET
Request URL: http://example.com/Using the URLconf defined in djblets.util.rooturl, Django tried these URL patterns, in this order:
^reviewboard/
The current URL,dashboard/
, didn't match any of these.
This seems nearly identical to a similar reported issue with Apache and mod_wsgi, so I tried the approach suggested in that thread...
When I have the following in conf/settings_local.py:
SITE_ROOT = ''
FORCE_SCRIPT_NAME = '/reviewboard'
DEBUG = True
and I visit http://example.com/reviewboard/ (after restarting Apache), I get the following in the Apache access_log:
"GET /reviewboard HTTP/1.1" 301 -
"GET /reviewboard/dashboard/ HTTP/1.1" 302 -
"GET /reviewboard/dashboard/account/login/?next_page=/reviewboard/dashboard/ HTTP/1.1" 404 2871
and a 404 in the browser with the following:
Request Method: GET
Request URL: http://example.com/reviewboard/dashboard/account/login/?next_page=/reviewboard/dashboard/Using the URLconf defined in djblets.util.rooturl, Django tried these URL patterns, in this order:
^ ^admin/
^ ^media/(?P<path>.*)$
^ ^account/
^ ^api/
^ ^r/
^ ^reports/
^ ^dashboard/$
^ ^users/$
^ ^users/(?P<username>[A-Za-z0-9@_\-\.]+)/$
^ ^groups/$
^ ^groups/(?P<name>[A-Za-z0-9_-]+)/$
^ ^groups/(?P<name>[A-Za-z0-9_-]+)/members/$
^ ^feeds/rss/(?P<url>.*)/$
^ ^feeds/atom/(?P<url>.*)/$
^ ^account/logout/$
^ ^$
^ ^iphone/
The current URL,dashboard/account/login/
, didn't match any of these.
This is similar to issues reported with apache and mod_python and lightppd and fastcgi, except I'm using using Apache and mod_wsgi.
So long as I can get ReviewBoard to be hosted at a unique path in the existing server instance, I don't much care where the actual site files are located. Help in getting this up and running would be greatly appreciated!