全新安装的 Trac 1.0.1 拒绝使用 FastCGI 运行

全新安装的 Trac 1.0.1 拒绝使用 FastCGI 运行

我有一个新安装的服务器正在运行Debian 压缩我已经安装了Python 2.6.6Trac 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")
        )
    )
)

当我使用 启动 lig​​httpd 时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

相关内容