`
hhhj
  • 浏览: 9263 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Rails 部署: Rails 2.3.4,REE 1.8.7, Nginx+Passenger, Caps2.5,SVN

阅读更多

Rails 部署

Rails 2.3.4, Ruby  Enterprise Edition  1.8.7, Nginx+Passenger, Capstranio2, svn

开发机: windows

部署: linux(redhat)

 

.ruby企业版安装

     1.在http://www.rubyenterpriseedition.com/下载最新版本,目前的1.8.7-20090928,是一个tar

     2.运行tar zxf ruby-enterprise-1.8.7-20090928.tar.gz,解开目录

     3.在解开的目录中运行sudo ./installer,如果系统中的gcc版本太低的话,则编译时会出错。这是需要删除installer.rb source/distro/installer.rb中的 "-fno-stack-protector"选项。 安装过程中需要连接internet,如果没有连接,则安装结束后会出现如下提示:

 

The following gems could not be installed, probably because of an Internet

connection error:

 

 * passenger

 * rake

 * rails

 * fastthread

 * rack

 * mysql -- --with-mysql-config='/usr/bin/mysql_config'

 * sqlite3-ruby

 * postgres

 

These gems are not required, i.e. Ruby Enterprise Edition will work fine without them. But most people use Ruby Enterprise Edition in combination with Phusion Passenger and Ruby on Rails, which do require one or more of the aforementioned gems, so you may want to install them later.

 

To install the aforementioned gems, please use the following commands:

  * /opt/ree1.8.7/bin/ruby /opt/ree1.8.7/bin/gem install passenger

  * /opt/ree1.8.7/bin/ruby /opt/ree1.8.7/bin/gem install rake

  * /opt/ree1.8.7/bin/ruby /opt/ree1.8.7/bin/gem install rails

  * /opt/ree1.8.7/bin/ruby /opt/ree1.8.7/bin/gem install fastthread

  * /opt/ree1.8.7/bin/ruby /opt/ree1.8.7/bin/gem install rack

  * /opt/ree1.8.7/bin/ruby /opt/ree1.8.7/bin/gem install mysql -- --with-mysql-config='/usr/bin/mysql_config'

  * /opt/ree1.8.7/bin/ruby /opt/ree1.8.7/bin/gem install sqlite3-ruby

  * /opt/ree1.8.7/bin/ruby /opt/ree1.8.7/bin/gem install postgres

     4. 运行 /opt/ree1.8.7/bin/ruby -v 查看是否安装成功

     5. 安装应用需要的gem

             sudo chown -R rails /opt/ree1.8.7

              /opt/ree1.8.7/bin/gem install rake fastthread capistrano rack

              /opt/ree1.8.7/bin/gem install  ruby-oci8  -v 1.0.6

               /opt/ree1.8.7/bin/gem install activerecord-oracle-adapter --source http://gems.rubyonrails.org

 

            

.nginx+passenger安装

     1.安装passenger

               /opt/ree1.8.8/bin/gem install passenger

     2.安装nginx

              sudo /opt/ree1.8.7/bin/passenger-install-nginx-module

     3.配置nginx

            

worker_processes  1;

 

events {

    worker_connections  4096;

}

 

http {

    passenger_root /opt/ree1.8.7/lib/ruby/gems/1.8/gems/passenger-2.2.5;

    passenger_ruby /opt/ree1.8.7/bin/ruby;

    passenger_max_pool_size 30;

 

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

 

    server {

        listen       6789;

        server_name  232.228.29.197;

        root /home/rails/apps/BssEx2/current/public;

        passenger_enabled on;

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

            

.capstranio2配置

     

set :application, "BssEx2"

set :repository,  "svn://232.239.9.124/bss/public/BssEx2/trunk"

 

set :deploy_to, "/home/rails/apps/#{application}"

set :checkout, "export"

set :use_sudo, false

 

role :app, "232.228.29.197"

role :web, "232.228.29.197"

 

set :user, "rails"

set :password, "mypass"

 

namespace :deploy do

  task :start, :roles => :app do

    run "touch #{current_release}/tmp/restart.txt"

  end

 

  task :stop, :roles => :app do

    # Do nothing.

  end

 

  desc "Restart Application"

  task :restart, :roles => :app do

    run "touch #{current_release}/tmp/restart.txt"

  end

end

 

.发布Rails应用

 

       在项目根目录下:

          cap deploy:setup  #配置发布环境

          cap deploy             #发布

 

.查看服务器状态

        sudo /opt/ree1.8.7/bin/passenger-memory-stats

        sudo /opt/ree1.8.7/bin/passenger-status

分享到:
评论
9 楼 zhumg123 2010-01-07  
ruby 内存一直增加
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2009.10
rails 1.2.6 rails 2.3.5同时存在
sqlite3-ruby (1.2.5)
sqlite3 mysql数据库,都用过
内存总是在增加。
ldd ruby
libtcmalloc_minimal.so.0 => /usr/local/lib/libtcmalloc_minimal.so.0 (0xb7eec000)
现在内存还是一直在增加,1g内存,由原来的2.9%,增加到4.0%
请问还要配置什么啊,
ubuntu8.0.4 32位系统
请求帮助?
我是用mongrel或webrick启动的
8 楼 wosmvp 2009-10-11  
*我* 认为部署工具只是用来:

1, 服务器代码更新到你想要的版本,copy 配置文件,数据迁移。。。
2, 出现错误,回滚

可以实现这两条就已经够了,具体用什么管理你的代码库与部署过程完全是两码事,
管你用sync,还是拷文件来实现服务器的代码更新,用部署工具的目的只是自动化完成这个过程而已。。。

7 楼 gakaki 2009-10-11  
用用vlad the developer
6 楼 night_stalker 2009-10-11  
话说 heroku 部署真简单舒服 …… git push 后 5 秒内服务器重启完成。
(跑题:比本地重启 jetty/tomcat 还快) …… 经常有一天部署它几十次的冲动 ……

rainchen 写道
部署一般来说包括:
ssh自动登录
源码合并
数据迁移
服务重启

git 只是cap所做的处理的其中一环
如果说利用git 的钩子脚本也许也能做到?


git push heroku
heroku rake db:migrate
5 楼 rainchen 2009-10-11  
部署一般来说包括:
ssh自动登录
源码合并
数据迁移
服务重启

git 只是cap所做的处理的其中一环
如果说利用git 的钩子脚本也许也能做到?
4 楼 下一站,火星 2009-10-11  
wosmvp 写道
火星叔叔马丁 写道
cap这个东西 在git日益壮大的今天就是鸡肋

cap 部署 与 git 版本管理的强大有联系吗?

源代码的版本控制是部署的一个重要环节,尤其是对rails的部署,版本控制的作用比重还要高
3 楼 hhhj 2009-10-11  
你是说cap不支持git,所以前景不妙?
2 楼 wosmvp 2009-10-11  
本人愚笨,求解释。。。 ?

http://bit.ly/1uRuqP
1 楼 wosmvp 2009-10-11  
火星叔叔马丁 写道
cap这个东西 在git日益壮大的今天就是鸡肋

cap 部署 与 git 版本管理的强大有联系吗?

相关推荐

Global site tag (gtag.js) - Google Analytics