我正在尝试配置 Lighttpd 以使用 FastCGI 运行 Redmine。我已将以下代码添加到我的标准中lighttpd.conf
:
$HTTP["host"] =~ "^foo.bar.com$" {
server.document-root = "/usr/share/redmine/public/"
index-file.names += ( "dispatch.fcgi" ) #dispatch.fcgi if rails specified
server.error-handler-404 = "/dispatch.fcgi" #too
fastcgi.server = (
".fcgi" => (
"localhost" => (
"socket" => "/var/run/lighttpd/rails-fastcgi.sock",
"bin-path" => "/usr/share/redmine/public/dispatch.fcgi"
)
)
)
}
当我尝试启动 lighttpd 服务器时,错误日志中出现以下内容:
May 11 10:24:05 ohio lighttpd[5527]: (log.c.166) server started
May 11 10:24:05 ohio lighttpd[5527]: (mod_fastcgi.c.977) bind failed for: unix:/var/run/lighttpd/rails-fastcgi.sock-0 No such file or directory
May 11 10:24:05 ohio lighttpd[5527]: (mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed.
May 11 10:24:05 ohio lighttpd[5527]: (server.c.945) Configuration of plugins failed. Going down.
有人能帮助我解释为什么绑定总是失败吗?
答案1
问题是 Lighttpd 无法执行 FCGI 程序。尝试设置fastcgi.debug = 1
并检查错误日志中是否显示更多详细信息。如果这没有帮助,请尝试/usr/share/redmine/public/dispatch.fcgi
以 Lighttpd 运行的用户身份执行(lighttpd
或www-data
取决于发行版)。
答案2
这是一个很好的线索:
绑定失败:unix:/var/run/lighttpd/rails-fastcgi.sock-0 没有此文件或目录
Lighttpd 不创建目录;它希望能够创建套接字文件。
目录“/var/run/lighttpd”不存在,或者 Web 服务器用户没有该目录的写权限。