ruby setup.rb
通过查看gem -v看是否安装成功
step3)安装rails
gem install rails –y
这个过程会很慢,请耐心等待
通过查看rails -v看是否安装成功
step4) 安装
Ruby
的
FCGI
支持
由于ruby的fcgi支持库需要在编译的时候联接FCGI的系统库,因此我们需要先安装FCGI库,下载FCGI源代码发行包:
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure --prefix=/usr/local/fcgi
make && make install
然后就可以安装ruby的fcgi支持库了,下载ruby-fcgi-0.8.7.tar.gz:
tar xzvf ruby-fcgi-0.8.7.tar.gz
cd ruby-fcgi-0.8.7
ruby install.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
ruby install.rb setup
ruby install.rb install
step5)安装
lighttpd
然后下载lighttpd:
tar xzvf lighttpd-1.4.13.tar.gz
cd lighttpd-1.4.13
./configure --prefix=/usr/local/lighttpd
configure完毕以后,会给出一个激活的模块和没有激活模块的清单,可以检查一下,是否自己需要的模块都已经激活,在enable的模块中一定要有“mod_rewrite”这一项,否则重新检查pcre是否安装。然后编译安装:
make && make install
编译后配置:
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
如果你的Linux是RedHat/CentOS,那么:
cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd
如果你的Linux是SuSE,那么:
cp doc/rc.lighttpd /etc/init.d/lighttpd
其他Linux发行版本可以自行参考该文件内容进行修改。然后修改/etc/init.d/lighttpd,把
LIGHTTPD_BIN=/usr/sbin/lighttpd
改为
LIGHTTPD_BIN=/usr/local/lighttpd/sbin/lighttpd
此脚本用来控制lighttpd的启动关闭和重启:
/etc/init.d/lighttpd start
/etc/init.d/lighttpd stop
/etc/init.d/lighttpd restart
注意修改/etc/init.d/lighttpd中一行lighttpd="/usr/sbin/lighttpd"
改为lighttpd="/usr/local/lighttpd/sbin/lighttpd"
否则你用上面的脚本启动
虽然你还是可以用 /usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf这句来启动,但很不方便
step5)配置
lighttpd
修改/etc/lighttpd/lighttpd.conf
5.1)server.modules
取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog是一般需要用到的。
5.2)server.document-root, server.error-log,accesslog.filename需要指定相应的目录
5.3)用什么权限来运行lighttpd
server.username
= "nobody"
server.groupname
= "nobody"
从安全角度来说,不建议用root权限运行web server,可以自行指定普通用户权限。
5.4)静态文件压缩
compress.cache-dir
= "/tmp/lighttpd/cache/compress"
compress.filetype
= ("text/plain", "text/html","text/javascript","text/css")
可以指定某些静态资源类型使用压缩方式传输,节省带宽,对于大量AJAX应用来说,可以极大提高页面加载速度。
5.5)配置ruby on rails
最简单的配置如下:
$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/rails.socket",
"bin-path" => "/yourrails/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
}
即由lighttpd启动10个FCGI进程,lighttpd和FCGI之间使用本机Unix Socket通信。
step 6)启动时可能遇到的问题
6.1) 注意
"socket" 所对应的目录必须存在,否则报错
6.2)
/public/dispatch.fcgiPermissiondenied,
这是由于用户没有执行dispatch.fcgi的权限,只要覆与当前用户权限就行
cd/
yourrails
/public
chmod755dispatch.fcgi
6.3)
/public/dispatch.fcgiNosuchfileordirectory
这是由于没有找到ruby命令选成的
修改dispatch.fcgi文件,在第一行指定自己的可执行的ruby就可以了,比如我的ruby在/usr/local/ruby/bin/ruby,则把第一行修改为 #!/usr/local/ruby/bin/ruby