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

У меня недавно установленный сервер, на котором работает Debian squeeze. Я установил 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, если я запускаю серверный скрипт напрямую, используя /usr/local/lib/python2.6/dist-packages/Trac-1.0.1-py2.6.egg/trac/web/fcgi_frontend.pyпечатает именно это : No such file or directory,

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

1 ответ

Решение

Похоже, что в дистрибутиве 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
Другие вопросы по тегам