Назад | Перейти на главную страницу

Почему lighttpd и fastcgi продолжают присылать мне файл * .scgi вместо содержимого веб-сайта?

У меня такой конфиг:

server.modules              = (
  "mod_compress",
  "mod_access",
  "mod_alias",
  "mod_rewrite",
  "mod_redirect",
  "mod_secdownload",
  "mod_h264_streaming",
  "mod_flv_streaming",
  "mod_accesslog",
  "mod_auth",
  "mod_status",
  "mod_expire",
  "mod_fastcgi"
)

[...]

fastcgi.server = ( ".php" => ((
                    "bin-path" => "/usr/bin/php-cgi",
                     "socket" => "/var/tmp/lighttpd/php-fastcgi.socket" + var.PID,
                     "max-procs" => 1,
                     "kill-signal" => 9,
                     "idle-timeout" => 10,
                     "bin-environment" => (
                       "PHP_FCGI_CHILDREN" => "200",
                       "PHP_FCGI_MAX_REQUESTS" => "1000"
                     ),
                     "/pyapps/essai/blondes.fcgi" => (
                     "main" => (
                        "socket" => "/var/tmp/lighttpd/django-fastcgi.socket",
                      ),
                      ),

                     "bin-copy-environment" => (
                       "PATH", "SHELL", "USER"
                     ),
                     "broken-scriptfilename" => "enable"
                 )))

[...]

$HTTP["host"] =~ "(^|www\.)cam\.com(\:[0-9]*)?$" {

        server.document-root = "/home/cam/web/"
        accesslog.filename = "/home/cam/log/access.log"
        server.errorlog = "/home/cam/log/error.log"
        server.follow-symlink = "enable"

        # files to check for if .../ is requested
        server.indexfiles           = ( "index.php", "index.html", "index.htm", "index.rb")

url.rewrite = (
"^(/blondes/.*)$" => "/pyapps/essai/blondes.fcgi$1"
)

}

У меня есть следующее дерево каталогов:

/home/tv/web/
    `-- pyapps
        `-- essai
            `-- __init__.py
            `-- blondes.fcgi
            `-- blondes.pid
            `-- django-fcgi.py
            `-- manage.py
            `-- manage.pyo
            `-- plop
            `-- settings.py
            `-- urls.py

Никакой ошибки при перезапуске lighthttpd.

Я бегу:

./manage.py runfcgi method=prefork socket=/var/tmp/lighttpd/django-fastcgi.socket  daemonize=false pidfile=blondes.pid

Никаких ошибок тоже нет.

Затем я перехожу к http://cam.com/blondes/.

Предлагаю скачать пустой файл.

Я проверил разрешения, но все настроено для одного и того же пользователя и группы, и они работают для сайта PHP.

Файл /var/tmp/lighttpd/django-fastcgi.socket существует.

Когда я перезагружаю страницу, я не получаю никаких результатов ни в журналах ошибок, ни в команде manage.py runfcgi.

Я наверное упустил что-то очевидное, но что?

Нашел.

fastcgi.server = ( ".php" => ((
                    "bin-path" => "/usr/bin/php-cgi",
                     "socket" => "/var/tmp/lighttpd/php-fastcgi.socket" + var.PID,
                     "max-procs" => 1,
                     "kill-signal" => 9,
                     "idle-timeout" => 10,
                     "bin-environment" => (
                       "PHP_FCGI_CHILDREN" => "200",
                       "PHP_FCGI_MAX_REQUESTS" => "1000"
                     ),
                     "/pyapps/essai/blondes.fcgi" => (
                     "main" => (
                        "socket" => "/var/tmp/lighttpd/django-fastcgi.socket",
                      ),
                      ),

                     "bin-copy-environment" => (
                       "PATH", "SHELL", "USER"
                     ),
                     "broken-scriptfilename" => "enable"
                 )))

Должно быть:

fastcgi.server = ( ".php" => ((
                "bin-path" => "/usr/bin/php-cgi",
                 "socket" => "/var/tmp/lighttpd/php-fastcgi.socket" + var.PID,
                 "max-procs" => 1,
                 "kill-signal" => 9,
                 "idle-timeout" => 10,
                 "bin-environment" => (
                   "PHP_FCGI_CHILDREN" => "200",
                   "PHP_FCGI_MAX_REQUESTS" => "1000"
                 ),
                 "bin-copy-environment" => (
                   "PATH", "SHELL", "USER"
                 ),
                 "broken-scriptfilename" => "enable"
             )),
             "/pyapps/essai/blondes.fcgi" => (
                 "main" => (
                    "socket" => "/var/tmp/lighttpd/django-fastcgi.socket",
              ),
              ),
)

Просто глупая синтаксическая ошибка. Lightttpd просто ничего вам не сообщает, когда передаются бесполезные параметры. Сообщение об ошибке отсутствует. Ничего.