linux下rails 安装日志

    技术2022-05-11  151

    背景: linux +  rails + mysql +lighttpd + FCGI step 1)安装ruby 下载源代码包到本地Linux主机,然后解压缩,进入该目录,进行配置,编译和安装: tar xzvf ruby-1.8.5.tar.gz cd ruby-1.8.5 ./configure –prefix=/usr/local/ruby make && make install   安装好以后,修改操作系统PATH路径,加入/usr/local/ruby/bin: export PATH=/usr/local/ruby/bin:$PATH 将我们自己安装的ruby放在系统PATH前面,避免操作系统自带的ruby造成的干扰。 但是一旦系统重启,可能就没用了,所以将上面的设置放在/etc/profile中,便于对全局生效。 通过查看ruby -v看是否安装成功 step2)安装gem 在安装rails之前,要先安装rubygems。rubygems是ruby的在线包管理工具,可以从rubyforge下载rubygems: http://rubyforge.org/projects/rubygems/ 下载好源代码包,解压缩,安装: tar xzvf rubygems-0.9.0.tgz cd rubygems-0.9.0/ ruby setup.rb通过查看gem -v看是否安装成功 step3)安装rails gem install rails –y这个过程会很慢,请耐心等待通过查看rails -v看是否安装成功 step4) 安装 Ruby 的 FCGI 支持   由于ruby的fcgi支持库需要在编译的时候联接FCGI的系统库,因此我们需要先安装FCGI库,下载FCGI源代码发行包: http://www.fastcgi.com/dist/ 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: http://rubyforge.org/projects/fcgi/ 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: http://www.lighttpd.net/download/ 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.fcgi Permission denied,这是由于用户没有执行dispatch.fcgi的权限,只要覆与当前用户权限就行          cd / yourrails /public          chmod 755 dispatch.fcgi6.3) /public/dispatch.fcgi No such file or directory 

    这是由于没有找到ruby命令选成的

    修改dispatch.fcgi文件,在第一行指定自己的可执行的ruby就可以了,比如我的ruby在/usr/local/ruby/bin/ruby,则把第一行修改为 #!/usr/local/ruby/bin/ruby 


    最新回复(0)