Приложение Django с fcgi работает только в не демонизированном режиме - PullRequest
4 голосов
/ 23 февраля 2012

Прошу прощения, если это явная проблема, но я действительно в своем уме пытаюсь это выяснить.

У меня есть приложение Django, которое я запускаю как процесс fcgi и с Lighttpd в качествефронт-сервер.

Сначала я попытался запустить процесс Django FCGI, как предложено в документации (показано ниже)

python ./manage.py runfcgi method=threaded host=127.0.0.1 port=9030

Однако, когда я пытаюсь получить доступ к приложению из моего веб-браузера, я получаю Сообщение «Страница недоступна» .

Затем я попытался запустить процесс fcgi в недемонизированном режиме (в надежде увидеть некоторые сообщения об ошибках на экране), и на этот раз я смог получить доступ к приложениюиз моего браузера и все работало нормально .

python ./manage.py runfcgi method=threaded host=127.0.0.1 port=9030 daemonize=false

Я испытываю это странное поведение на сервере, тогда как на моей локальной машине для разработки все работает хорошо, даже когда процесс fcgi демонизирован.

Я также пытался использовать 'prefork' вместо 'threadaded', но это тоже не помогает.

Я публикую соответствующие части моего файла конфигурации Lighttpd, хотя я сомневаюсь в чем-либос ним что-то не так ...

$HTTP["host"] == "ideas.mydomain.com" {
    debug.log-request-handling = "enable"
    fastcgi.debug = 1
    fastcgi.server = (
        "/ideas.fcgi" => (
            "main" => (
                "host" => "127.0.0.1",
                "port" => 9030,
                "check-local" => "disable",
            )
        ),
    )

    url.rewrite-once = (
        "^(/.*)$" => "/ideas.fcgi$1",
    )
}

В журнале ошибок Lighttpd есть две строки, которые показывают, что он действительно пытается подключиться к процессу fcgi.

2012-02-28 08:48:49: (mod_fastcgi.c.3071) got proc: pid: 0 socket: tcp:127.0.0.1:9030 load: 1 
2012-02-28 08:48:49: (mod_fastcgi.c.1492) released proc: pid: 0 socket: tcp:127.0.0.1:9030 load: 0 

Кто-нибудь знает, что может быть не так?Я не вижу никаких журналов отладки, связанных с fcgi, даже когда у меня есть debug = true в параметрах командной строки для запуска fcgi.Нужно ли делать что-то особенное для просмотра журналов отладки из процесса fcgi?

Спасибо, любая помощь приветствуется.

1 Ответ

1 голос
/ 25 февраля 2012

Я бы начал с включения отладок в config lighthttpd, а также с установки fastcgi.debug = 1.

Когда у вас все журналирование и отладка включены, попробуйтеполучить доступ к сайту, чтобы сохранить ошибки в журналах.Затем вам нужно просмотреть основной журнал ошибок.

Местоположение по умолчанию - /var/log/lighttpd/error.log.

...