我有一个新安装的服务器正在运行Debian 压缩我已经安装了Python 2.6.6和Trac 1.0.1使用easy_install
。使用 时,Trac 运行良好tracd
。现在,我尝试配置 lighttpd 以使用 FastCGI 运行 Trac。我对 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