Django + mod_python + apache: админка и URL не работают - PullRequest
1 голос
/ 15 июля 2010

Целый день я пытался настроить django на рабочем сервере. Я использую mod_python. При открытии http: //beta.example.com я вижу свой сайт, но http: //beta.example.com/admin и http: //beta.example.com/441/abc/ не работают:

Page not found (404)
Request Method:     GET
Request URL:    http://beta.example.com/admin

{'path': u'admin'}

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.


Page not found (404)
Request Method:     GET
Request URL:    http://beta.example.com/441/abc/

{'path': u'441/abc/'}

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.

Мои URL:

from settings import MEDIA_ROOT
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # static files
    url(r'^static/javascripts/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': MEDIA_ROOT + '/javascripts'}, name='javascripts'),
    url(r'^static/images/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': MEDIA_ROOT + '/images'}, name='images'),
    url(r'^static/stylesheets/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': MEDIA_ROOT + '/stylesheets'}, name='stylesheets'),
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': MEDIA_ROOT}, name='static'),
    (r'^admin/', include(admin.site.urls)),
    url(r'^/?$', 'content.views.index', name='root-url'),
    url(r'^(?P<id>[0-9]{2,5})/(?P<slug>[a-z\-]+)/?$', 'content.views.show', name='show-url'),

)

Apache:

DocumentRoot "/var/www/django/beta.example.com/site"

<Location "/">
  allow from all
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE site.settings
  PythonOption django.root /
  PythonDebug On
  PythonPath "['/var/www/django/beta.example.com', '/var/www/django/beta.example.com/site'] + sys.path"
</Location>

<Location "/static" >
  SetHandler none
</Location>

Понятия не имею, что не так.

Ответы [ 3 ]

2 голосов
/ 15 июля 2010

Не уверен, решит ли это вашу проблему, но в моем site.conf для django мне пришлось прокомментировать строку:

PythonOption django.root /

, чтобы она заработала.

2 голосов
/ 15 июля 2010

Вы действительно не хотите использовать mod_python для развертывания.Я настоятельно рекомендую перейти на mod_wsgi для депонирования Django.

0 голосов
/ 15 июля 2010

Я просто добавляю это, но вы должны включить промежуточное ПО администратора django в вашем файле настроек.Это там, но закомментировано прямо из коробки.Если вы сделали это, я понятия не имею, в чем ваша проблема.

...