ReviewBoard shows 404 only on homepage

482 views
Skip to first unread message

Clare

unread,
Feb 14, 2011, 6:45:07 AM2/14/11
to reviewboard
Hi,

I'm attempting to setup ReviewBoard on a Win XP machine with Apache
2.2, Python 2.6 and mod_wsgi.
I've managed to get it so that only the first page you see shows the
404 error:

Page not found (404)
Request Method: GET
Request URL: http://localhost/reviewboard/

Using the URLconf defined in djblets.util.rooturl, Django tried these
URL patterns, in this order:

1. ^reviewboard/

The current URL, , didn't match any of these.

You're seeing this error because you have DEBUG = True in your Django
settings file. Change that to False, and Django will display a
standard 404 page.

However, it works if you use the url: "http://localhost/reviewboard/
reviewboard/account/login/?next_page=/reviewboard/account/login/",
notice the /reviewboard/reviewboard/...
It also works if you click on any other link on the homepage without
debug on.

Can anyone help me with the config please? I've been trying to get
this to work for a while, but not I'm at a loss as to what's going on.

This is what I have for local_settings.py:

# Database configuration
DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'reviewboard'
DATABASE_USER = 'root'
DATABASE_PASSWORD = 'xxx'
DATABASE_HOST = 'localhost'
DATABASE_PORT = ''

# Unique secret key. Don't share this with anybody.
SECRET_KEY = 'foo'

# Cache backend settings.
CACHE_BACKEND = 'memcached://localhost:11211/'

# Extra site information.
SITE_ID = 1
SITE_ROOT = '/reviewboard/'
FORCE_SCRIPT_NAME='/reviewboard'
DEBUG = True

----
reviewboard.wsgi:

import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = "reviewboard.settings"
os.environ['PYTHON_EGG_CACHE'] = "C:/.../http/reviewboard/tmp/
egg_cache"
os.environ['HOME'] = "C:/.../http/reviewboard/data"

sys.path.insert(0,'C:/.../http/reviewboard/conf')

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

---
apache-wsgi.conf:

<VirtualHost *:80>
ServerName localhost

DocumentRoot "C:/.../http"

# Error handlers
ErrorDocument 500 /errordocs/500.html

WSGIPassAuthorization On
WSGIScriptAlias "/reviewboard" "C:/.../http/reviewboard/htdocs/
reviewboard.wsgi"

<Directory "C:/.../http/reviewboard">
AllowOverride All
</Directory>

# Alias static media requests to filesystem
Alias /reviewboard/media "C:/.../http/reviewboard/htdocs/media"
Alias /reviewboard/errordocs "C:/.../http/reviewboard/htdocs/
errordocs"

</VirtualHost>

Thanks,
Clare

Christian Hammond

unread,
Feb 14, 2011, 3:56:52 PM2/14/11
to revie...@googlegroups.com
Hi Clare,

What version of Review Board did you use to generate your configuration?

I believe this is due to a combination of WSGIScriptAlias and SITE_ROOT. SITE_ROOT will add the "reviewboard/" prefix for all URLs, but WSGIScriptAlias is saying "/reviewboard is the start of the site." So combining the two leads to "/reviewboard/reviewboard". If there's nothing else on the site, you can use WSGIScriptAlias "/" "...", but I expect that that won't be the case if you're using a subdirectory install.

So you may try setting SITEROOT to '/'. However, I suspect what will happen is that certain links when then truly go to "/something" instead of "/reviewboard/something".

Subdirectory install with mod_wsgi aren't fully supported yet and need some work, as they behave a little differently than with mod_python, which is what we originally added that support for.

Christian

--
Christian Hammond - chi...@chipx86.com
Review Board - http://www.reviewboard.org
VMware, Inc. - http://www.vmware.com



--
Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/
Happy user? Let us know at http://www.reviewboard.org/users/
-~----------~----~----~----~------~----~------~--~---
To unsubscribe from this group, send email to reviewboard...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en

Clare

unread,
Feb 15, 2011, 4:55:44 AM2/15/11
to reviewboard
Hi Christian,

Yes it is a subdirectory install and I'm using the latest version of
Review Board.
I tried your suggestions but unfortunately they didn't work. Changing
WSGIScriptAlias breaks other parts of the site. Changing SITE_ROOT to
'/' redirects 'http://localhost/reviewboard' to 'http://localhost/
account/login/?next_page=/reviewboard/dashboard/' which cannot be
found.

However, it has now been decided to move Review Board onto it's own
linux server, so hopefully that install will go smoother.

Thanks very much for your help.

Clare

On Feb 14, 8:56 pm, Christian Hammond <chip...@chipx86.com> wrote:
> Hi Clare,
>
> What version of Review Board did you use to generate your configuration?
>
> I believe this is due to a combination of WSGIScriptAlias and SITE_ROOT.
> SITE_ROOT will add the "reviewboard/" prefix for all URLs, but
> WSGIScriptAlias is saying "/reviewboard is the start of the site." So
> combining the two leads to "/reviewboard/reviewboard". If there's nothing
> else on the site, you can use WSGIScriptAlias "/" "...", but I expect that
> that won't be the case if you're using a subdirectory install.
>
> So you may try setting SITEROOT to '/'. However, I suspect what will happen
> is that certain links when then truly go to "/something" instead of
> "/reviewboard/something".
>
> Subdirectory install with mod_wsgi aren't fully supported yet and need some
> work, as they behave a little differently than with mod_python, which is
> what we originally added that support for.
>
> Christian
>
> --
> Christian Hammond - chip...@chipx86.com
> Review Board -http://www.reviewboard.org
> VMware, Inc. -http://www.vmware.com
>
> On Mon, Feb 14, 2011 at 3:45 AM, Clare <clare.cy...@gmail.com> wrote:
> > Hi,
>
> > I'm attempting to setup ReviewBoard on a Win XP machine with Apache
> > 2.2, Python 2.6 and mod_wsgi.
> > I've managed to get it so that only the first page you see shows the
> > 404 error:
>
> > Page not found (404)
> > Request Method:         GET
> > Request URL:    http://localhost/reviewboard/
>
> > Using the URLconf defined in djblets.util.rooturl, Django tried these
> > URL patterns, in this order:
>
> >   1. ^reviewboard/
>
> > The current URL, , didn't match any of these.
>
> > You're seeing this error because you have DEBUG = True in your Django
> > settings file. Change that to False, and Django will display a
> > standard 404 page.
>
> > However, it works if you use the url: "http://localhost/reviewboard/
> > reviewboard/account/login/?next_page=/reviewboard/account/login/<http://localhost/reviewboard/%0Areviewboard/account/login/?next_page=...>
> > Happy user? Let us know athttp://www.reviewboard.org/users/

Christian Hammond

unread,
Feb 15, 2011, 6:18:27 AM2/15/11
to revie...@googlegroups.com
Hi Clare,

You'll have an easier time with that setup. Let me know if you have any problems with it!

Christian

--
Christian Hammond - chi...@chipx86.com
Review Board - http://www.reviewboard.org
VMware, Inc. - http://www.vmware.com


Happy user? Let us know at http://www.reviewboard.org/users/
Reply all
Reply to author
Forward
0 new messages