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

Свежая установка Trac 1.0.1 отказывается работать с FastCGI

У меня работает только что установленный сервер Сжатие Debian. Я установил Python 2.6.6 и Trac 1.0.1 с помощью easy_install. Trac работает нормально при запуске tracd. Теперь я пытаюсь настроить lighttpd для запуска Trac с помощью FastCGI. Я использую следующую конфигурацию для подключения FastCGI:

fastcgi.server = (
    "/project" => (
        (
            "socket" => "/tmp/trac-fastcgi-first.sock",
            "bin-path" => "/usr/local/lib/python2.6/dist-packages/Trac-1.0.1-py2.6.egg/trac/web/fcgi_frontend.py",
            "check-local" => "disable",
            "bin-environment" => ("TRAC_ENV" => "/var/trac/project")
        )
    )
)

Когда я запускаю lighttpd, используя lighttpd -D -f /etc/lighttpd/lighttpd.conf, он просто печатает : No such file or directory и выходит. Я не думаю, что это имеет какое-либо отношение к конфигурации lighttpd, если я запускаю backend скрипт напрямую, используя /usr/local/lib/python2.6/dist-packages/Trac-1.0.1-py2.6.egg/trac/web/fcgi_frontend.py, он печатает только это : No such file or directory.

У кого-нибудь была такая же проблема? А где вообще искать проблему?

Похоже, что в раздаче Trac установлен с помощью easy_install Trac=1.0.1, по крайней мере, файл сценария оболочки FastCGI под /usr/local/lib/python2.6/dist-packages/Trac-1.0.1-py2.6.egg/trac/web/fcgi_frontend.py кодируется с использованием окончаний строк CRLF. Это приводит к тому, что строка shebang некорректно читается ядром и приводит к странному сообщению об ошибке.

Удаление всех символов CR из файла решает проблему:

$ cd /usr/local/lib/python2.6/dist-packages/Trac-1.0.1-py2.6.egg/trac/web/
$ tr -d '\r' < fcgi_frontend.py > fcgi_frontend.py~
$ mv fcgi_frontend.py~ fcgi_frontend.py
$ chmod a+x fcgi_frontend.py