У меня такой конфиг:
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 просто ничего вам не сообщает, когда передаются бесполезные параметры. Сообщение об ошибке отсутствует. Ничего.