精华帖 (2) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-10
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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-11
火星叔叔马丁 写道 cap这个东西 在git日益壮大的今天就是鸡肋
cap 部署 与 git 版本管理的强大有联系吗? |
|
返回顶楼 | |
发表时间:2009-10-11
最后修改:2009-10-11
|
|
返回顶楼 | |
发表时间:2009-10-11
你是说cap不支持git,所以前景不妙?
|
|
返回顶楼 | |
发表时间:2009-10-11
wosmvp 写道 火星叔叔马丁 写道 cap这个东西 在git日益壮大的今天就是鸡肋
cap 部署 与 git 版本管理的强大有联系吗? 源代码的版本控制是部署的一个重要环节,尤其是对rails的部署,版本控制的作用比重还要高 |
|
返回顶楼 | |
发表时间:2009-10-11
部署一般来说包括:
ssh自动登录 源码合并 数据迁移 服务重启 git 只是cap所做的处理的其中一环 如果说利用git 的钩子脚本也许也能做到? |
|
返回顶楼 | |
发表时间:2009-10-11
最后修改:2009-10-11
话说 heroku 部署真简单舒服 …… git push 后 5 秒内服务器重启完成。
(跑题:比本地重启 jetty/tomcat 还快) …… 经常有一天部署它几十次的冲动 …… rainchen 写道 部署一般来说包括:
ssh自动登录 源码合并 数据迁移 服务重启 git 只是cap所做的处理的其中一环 如果说利用git 的钩子脚本也许也能做到? git push heroku heroku rake db:migrate |
|
返回顶楼 | |
发表时间:2009-10-11
用用vlad the developer
|
|
返回顶楼 | |
发表时间:2009-10-11
*我* 认为部署工具只是用来:
1, 服务器代码更新到你想要的版本,copy 配置文件,数据迁移。。。 2, 出现错误,回滚 可以实现这两条就已经够了,具体用什么管理你的代码库与部署过程完全是两码事, 管你用sync,还是拷文件来实现服务器的代码更新,用部署工具的目的只是自动化完成这个过程而已。。。 |
|
返回顶楼 | |
发表时间: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启动的 |
|
返回顶楼 | |
浏览 8495 次