Свежая установка 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