lighttpd+fastcgi+ror的虚拟主机配置问题

悬赏:10 发布时间:2008-07-23 提问人:jerry (中级程序员)

看过robbin的配置
$HTTP["host"] == "www.xxx.com" {  
server.document-root = "/yourrails/public" 
server.error-handler-404 = "/dispatch.fcgi" 
fastcgi.server = (".fcgi" =>  
    ("localhost" =>  
      ("min-procs" => 10,  
       "max-procs" => 10,  
       "socket" => "/tmp/lighttpd/socket/rails.socket",  
       "bin-path" => "/yourrails/public/dispatch.fcgi",  
       "bin-environment" => ("RAILS_ENV" => "production")  
      )  
    )  
)  

我现在的环境是ubuntu8.041,ROR2.1,fastcgi2.4,lighttpd这些全是apt-get最新,ruby1.8.6
在我的工程下的config中的自动生成的配置如下
fastcgi.server      = ( ".fcgi" => ( "localhost" => (
  "min-procs"       => 40,
  "max-procs"       => 80,
  "socket"          => CWD + "/tmp/sockets/fcgi.socket",
  "bin-path"        => CWD + "/public/dispatch.fcgi",
  "bin-environment" => ( "RAILS_ENV" => "development" )
) ) )
现在如果在项目下运行ruby script/server是可以启动服务的,但用robbin的直接在lighttpd中配置的方式起不来.
有一点不理解,为什么robbin等人的配置全是rails.socket,而我们是fcgi.socket,我把他的换成我们的文件名和路径也是不行,提示fastcgi已经defunct,有思路的请提供一下帮助:)

问题补充:
cwd+/tmp/sockets,目录是有的.但没有robbin等说的"/tmp/lighttpd/socket/rails.socket"
问题补充:
我在工程目录下,直接用ruby script/server起的.我安装了lighttp,ruby,在config下直接就自动有了lighttp.conf文件,是自动生成的,在这个文件中内容就是这样的,我没有改过.是可以用的,好用.

问题补充:
这是lighttpd中的log报错.

2008-07-24 20:37:22: (mod_fastcgi.c.1029) the fastcgi-backend /XXXXXX/public/dispatch.fcgi failed to start:
2008-07-24 20:37:22: (mod_fastcgi.c.1033) child exited with status 1 /XXXXXX/public/dispatch.fcgi
2008-07-24 20:37:22: (mod_fastcgi.c.1036) If you're trying to run PHP as a FastCGI backend, make sure you're using the FastCGI-enabled version.
该问题已经关闭: 依然没有解决,Ubuntu的sudo也非常怪,和root不是完全一样.

回答

1, cwd是什么,
2,检查是否有目录/tmp/sockets/,
3,你的socket,你自己可以取的,没什么特别,比如localhost.socket。
cnchun (初级程序员) 2008-07-24
CWD + "/tmp/sockets/fcgi.socket",

这是一个错误的Unix路径名称。

socket文件的路径随便你自己指定呀,这都不会?
robbin (中级程序员) 2008-07-24
朋友,我跟你报的错误是一样的,是否已经解决? 如解决可否分享如何解决的不? 谢谢
agen_0502 (初级程序员) 2008-08-01