У меня работает только что установленный сервер Сжатие 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