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

Chrooted nginx, fastcgi и cgit

Я запускаю сервер Debian с nginx, размещенным в / var / chroot / nginx. Это прекрасно работает, но я бы хотел иметь возможность запускать cgit и размещать свои репозитории gitolite.

Когда он был вне chroot, он выдал бы мне ту же ошибку, что и сейчас, а именно:

2012/12/08 14:25:19 [error] 9179#0: *3 FastCGI sent in stderr: "Cannot get script name, is DOCUMENT_ROOT and SCRIPT_NAME set and is the script executable?" while reading response header from upstream

Я почти уверен, что это проблема с fastcgi ... вот соответствующие строки в моем nginx.conf:

server {
    listen 80;
    server_name git.url.tld;
    access_log /var/log/nginx/cgit.access.log;
    error_log /var/log/nginx/cgit.error.log;
    root /var/www/htdocs/cgit;

        location ~* ^.+\.(css|png|ico)$ {
            root /var/www/htdocs/cgit;
            expires 30d;
        }

        location / {
    root /var/www/htdocs/cgit;
            fastcgi_param   SCRIPT_NAME     cgit.cgi;
    fastcgi_param   DOCUMENT_ROOT   /var/www/htdocs/cgit;
            fastcgi_param   PATH_INFO       $uri;
            fastcgi_param   QUERY_STRING    $args;
            fastcgi_pass    unix:/tmp/cgi.sock;
        }  
    }

Какие-нибудь подсказки? Fastcgi, fcgi-wrap и т. Д. Находятся вне chroot, потому что наличие cgit, fastcgi и gitolite в chroot показалось немного чрезмерным. У fastcgi открыт сокет по адресу /var/chroot/nginx/tmp/cgi.sock.

Спасибо за вашу помощь!!

Вероятно, это ошибка версии fcgiwrap, обнаруженная в debian squeeze (1.0-1 + squeeze1). Видеть http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698071

Обновление до fcgiwrap 1.0.3-3 решило проблему для меня.