Django на lighttpd: перенаправление на .fcgi (404) - PullRequest
1 голос
/ 04 июля 2011

Я в процессе развертывания моего проекта django на светлом сервере. Когда я пытаюсь получить доступ к корню сайта, все в порядке, но если я добавлю / admin / или / blog /, я получу:

Page not found (404)
Request Method:     GET
Request URL:    http://x.x.x.x/mysite.fcgi/mysite.fcgi/admin/

и,

Page not found (404)
Request Method:     GET
Request URL:    http://x.x.x.x/mysite.fcgi/mysite.fcgi/blog/

Я прочитал несколько постов об этом, и, кажется, это можно решить, добавив: FORCE_SCRIPT_NAME = "" в settings.py. Однако это не сработало для меня.

urls.py:

urlpatterns = patterns('',
(r'^$', index),
(r'^blog/$', blog_view),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
)

lighttpd.conf:

$HTTP["host"] == "x.x.x.x" {
server.document-root = "/home/lighttpd/sedin/web"
fastcgi.server = (
    "/mysite.fcgi" => (
        "main" => (
            # Use host / port instead of socket for TCP fastcgi
            #"host" => "127.0.0.1",
            #"port" => 3033,            
            "socket" => "/home/lighttpd/sedin/sedin.sock",
            "check-local" => "disable",
            #"fix-root-scriptname" => "enable", #also tried this, but didn't work
        )
    ),
)
alias.url = (
    "/static/admin/" => "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/",
    "/media/" => "/home/lighttpd/sedin/media/",
    "/static/" => "/home/lighttpd/sedin/web/static/",
)

url.rewrite-once = (
    "^(/static.*)$" => "$1",
    "^(/media.*)$" => "$1",
    "^/favicon\.ico$" => "/media/favicon.ico",
    "^(/.*)$" => "/mysite.fcgi$1",
)
}

Ответы [ 3 ]

5 голосов
/ 20 сентября 2011

Добавьте к вашим settings.py:

FORCE_SCRIPT_NAME = ''

https://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#forcing-the-url-prefix-to-a-particular-value

fix-root-scriptname исправляет ошибку lighttpd при использовании fastcgi.server = ( "/" вместо fastcgi.server = ( "/mysite.fcgi"

1 голос
/ 06 июля 2011

Я решил эту проблему, убив все запущенные процессы fastcgi и запустив новый.Я не знал, что fcgi нужно перезапускать каждый раз, когда я вносил изменения в проекты .py-файлы.

0 голосов
/ 23 ноября 2011

Для этого есть билет: https://code.djangoproject.com/ticket/11694

...