ROR with Lighttpd+SCGI on Windows

Lighttp+SCGI是相对古老的FastCGI一样高效但是配置更简单的Rails运行环境,最近才有win32下的预编译包。白老鼠试验中,我刚装好,分享一下:

Step 1:
下载安装 Lighttpd for win32
这个现在只能装在c:\lighttpd下,目录路径现在不能改(罪恶的hardcode阿)
然后配置c:\lighttpd\etc\lighttpd.conf文件,这个有点烦。

server.modules              = (
                               "mod_rewrite",
                               "mod_redirect",
                               "mod_access",
                               "mod_accesslog",
                               "mod_status",
                               "mod_scgi")

找到modules这段,默认只有mod_access和mod_accesslog,按上述增加其它模块。

server.document-root        = "C:/RailsApp/public"
server.errorlog             = "C:/RailsApp/log/lighttpd-errors.log"
accesslog.filename          = "C:/RailsApp/log/lighttpd-access.log"

找到上述三行,按你自己的rails应用路径做相应更改

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" )

找到这行,增加.scgi后缀处理

server.error-handler-404   = "/dispatch.scgi"

增加这行,注意在你的应用public目录下并不需要实际建立dispatch.scgi这个文件。这个文件是虚拟的。

scgi.server = ( "dispatch.scgi" => ((
  "host" => "127.0.0.1",
  "port" => 9999,
  "check-local" => "disable"
)) )
scgi.debug=0

增加以上scgi配置段落。

Step 2:
下载安装 SCGI Rails Runner
这个有两个依赖库可能需要安装:

gem install cmdparse
gem install highline

然后

gem install scgi_rails-0.4.3.gem

Step 3:
配置SCGI:在console里切换当前路径到c:\railsapp(你自己的rails应用路径),执行

scgi_ctrl config -S

会提示你设置密码,(大概是为了用于通过Drb远程管理吧)
执行完毕会在你应用目录产生\config\scgi.yaml配置文件。注意默认是production环境,如果要运行在development环境,在其中修改:env:参数。不过development环境也许存在内存泄漏问题

Step 4:
在Rails应用根目录下建立一个启动脚本run.bat,内容如下:

@echo off
c:
cd C:\lighttpd\sbin
echo Stopping lighty...
process.exe -k lighttpd.exe > nul
echo Starting lighty...
lighttpd.exe -f ..\etc\lighttpd.conf
echo Stopping SCGI_service...
Process.exe -k ruby.exe > nul
cd C:\railsapp
echo Starting SCGI_service...
scgi_service

当然,修改其中c:\railsapp为你自己的应用目录。

好了,大功告成,运行run.bat吧,察看你的http://localhost吧

如果想把这个设置成service方式可以用SRVANY,具体设置参见 这个地方。同时需要修改注册表

HKLM\SYSTEM\CurrentControlSet\Services\RailsApp\Parameters\Application = c:\railsapp\run.bat

SCGI Rails Runner还有些别的运行和配置,参加其 主页和文档

你可能感兴趣的:(c,windows,C#,lighttpd,Rails)