Linux下passenger多ruby版本共存部署方法

发布时间:2020-08-04编辑:脚本学堂
本文介绍了linux系统中passenger多ruby版本共存部署的方法,有需要的朋友参考下。

linux passenger多ruby版本共存
1,安装rvm
 

复制代码 代码示例:
mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/  
git clone git://github.com/wayneeseguin/rvm.git  
cd rvm && ./install  

2.修改用户配置文件.bashrc,添加一行代码:
 

复制代码 代码示例:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 

3.重启Terminal.
查询当前版本: rvm info
列出版本: rvm list
更多命令,访问 http://rvm.beginrescueend.com/rvm/
 
4.安装 ruby
4.1.安装REE
rvm install ree
4.2.安装 ruby- 1.9 . 2
 

复制代码 代码示例:
rvm install ruby-1.9.2-p180
 

小技巧:用工具下载好ruby-enterprise-1.8.7-2011.03.tar.gz,ruby-1.9.2-p180.tar.bz2,yaml-0.1.3.tar.gz,然后手工放到~/.rvm/archives 目录下,再运行安装 命令,可以直接解压安装。
 
5.将某一个版本的ruby设为默认
 

复制代码 代码示例:
$ rvm --default use 1.9.2   #设置1.9.2为默认版本 
 
$ rvm default      #通过default可以快速回到默认版本 
$ rvm list default     #查看当前版本设置信息 
$ rvm reset     #恢复系统默认设置   
 

6.安装rails
6.1.安装rails2
 

复制代码 代码示例:
$ rvm ree-1.8.7-2011.03 
$ rvm gemset create rails2 
$ rvm genset use rails2 
$ gem install --no-ri --no-rdoc rails -v=2.3.12

6.2.安装rails3
 

复制代码 代码示例:
$ rvm ruby-1.9.2-p180 
$ rvm gemset create 'rails3' 
$ rvm gemset use rails3 
$ gem install rails 
Successfully installed activesupport-3.0.9 
Successfully installed builder-2.1.2 
Successfully installed i18n-0.5.0 
Successfully installed activemodel-3.0.9 
Successfully installed rack-1.2.3 
Successfully installed rack-test-0.5.7 
Successfully installed rack-mount-0.6.14 
Successfully installed tzinfo-0.3.28 
Successfully installed abstract-1.0.0 
Successfully installed erubis-2.6.6 
Successfully installed actionpack-3.0.9 
Successfully installed arel-2.0.10 
Successfully installed activerecord-3.0.9 
Successfully installed activeresource-3.0.9 
Successfully installed mime-types-1.16 
Successfully installed polyglot-0.3.1 
Successfully installed treetop-1.4.9 
Successfully installed mail-2.2.19 
Successfully installed actionmailer-3.0.9 
Successfully installed thor-0.14.6 
Successfully installed rdoc-3.6.1 
Successfully installed railties-3.0.9 
Successfully installed bundler-1.0.15 
Successfully installed rails-3.0.9 
24 gems installed 
 

7.创建别名
 

复制代码 代码示例:
$ rvm alias create ree ree-1.8.7-2011.03 #为ree-187的Ruby版本创建一个别名叫:ree 
$ rvm alias create ruby192 ruby-1.9.2-p180 
$ rvm use ree #通过别名迅速切换 
$ rvm delete ree #删除别名  
$ rvm alias list # 查看所有的别名  

9.使用gemset
 

复制代码 代码示例:
$ rvm use ree@rails2 
$ rvm use ruby192@rails3 --default   #设置默认 

10.安装passenger
 

复制代码 代码示例:
$ gem install passenger 
$ rvm wrapper 1.9.2 passenger 
$ passenger-install-nginx-module 
# Passenger will help you install nginx, the folder is in /opt/nginx 
Downloading Nginx... 
# wget -O /tmp/root-passenger-12180/nginx.tar.gz http://sysoev.ru/nginx/nginx-1.0.0.tar.gz 
-------------------------------------------- 
 
Nginx with Passenger support was successfully installed. 
 
The Nginx configuration file (/opt/nginx/conf/nginx.conf) 
must contain the correct configuration options in order for Phusion Passenger 
to function correctly. 
 
This installer has already modified the configuration file for you! The 
following configuration snippet was inserted: 
 
  http { 
      ... 
      passenger_root /usr/local/rvm/gems/ruby-1.9.2-p180@rails3/gems/passenger-3.0.7; 
      passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p180@rails3/ruby; 
      ... 
  } 
 
After you start Nginx, you are ready to deploy any number of Ruby on Rails 
applications on Nginx. 
 
Press ENTER to continue
 
-------------------------------------------- 
 
Deploying a Ruby on Rails application: an example 
 
Suppose you have a Ruby on Rails application in /somewhere. Add a server block 
to your Nginx configuration file, set its root to /somewhere/public, and set 
'passenger_enabled on', like this: 
 
   server { 
      listen 80; 
      server_name www.yourhost.com; 
      root /somewhere/public;   # <--- be sure to point to 'public'! 
      passenger_enabled on; 
   }   
 

11.设置IP和App
11.1.单个网卡eth1配置多个IP地址
 

复制代码 代码示例:
ifconfig eth1:0 192.168.56.101 netmask 255.255.255.0 up 
ifconfig eth1:1 192.168.56.102 netmask 255.255.255.0 up 

11.1.设置demo2(ree@rails2)
 

复制代码 代码示例:
cd /opt/rails_apps/
rails demo2
cd demo2

11.2.设置demo3(ruby192@rails3)
 

复制代码 代码示例:

cd /opt/rails_apps/
rails new demo3
cd rails3
passenger start -a 127.0.0.1 -p 3001 -d
(此命令执行俩次,详细信息见passenger.zip)

Downloading Nginx... 
# wget -O /tmp/root-passenger-standalone-3917/nginx-1.0.0.tar.gz http://nginx.org/download/nginx-1.0.0.tar.gz 
--15:40:02--  http://nginx.org/download/nginx-1.0.0.tar.gz 
Resolving nginx.org... 81.19.68.137 
Connecting to nginx.org|81.19.68.137|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 654760 (639K) [application/octet-stream] 
Saving to: `/tmp/root-passenger-standalone-3917/nginx-1.0.0.tar.gz' 
 
100%[=======================================>] 654,760     56.7K/s   in 19s     
 
15:40:21 (34.2 KB/s) - `/tmp/root-passenger-standalone-3917/nginx-1.0.0.tar.gz' saved [654760/654760] 
 
Installing Phusion Passenger Standalone... 
[*********************************************] Copying files...                
All done! 
 
=============== Phusion Passenger Standalone web server started =============== 
PID file: /opt/rails_apps/demo3/tmp/pids/passenger.3001.pid 
Log file: /opt/rails_apps/demo3/log/passenger.3001.log 
Environment: development 
Accessible via: http://127.0.0.1:3001/ 
 
Serving in the background as a daemon. 
 

12.配置nginx
 

复制代码 代码示例:
http{ 
    ... 
    passenger_root /usr/local/rvm/gems/ruby-1.9.2-p180@rails3/gems/passenger-3.0.7; 
    passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p180@rails3/ruby;  
  
    server { 
        listen 80; 
        server_name 192.168.56.101;  
        root /opt/rails_apps/demo2/public; 
        passenger_enabled on; 
        rails_env development; 
    } 
     
    server { 
        listen 80; 
        server_name 192.168.56.102; 
        root /opt/rails_apps/demo3/public; 
        location / { 
          proxy_pass http://127.0.0.1:3001; 
          proxy_set_header Host $host; 
        } 
    } 

 

启动:/opt/nginx/sbin/nginx
停止:/opt/nginx/sbin/nginx -s stop
访问:
rails2:http://192.168.56.101/
rails3:http://192.168.56.102/
 
13.直接通过项目名称访问,在/etc/hosts中添加:
 

复制代码 代码示例:
192.168.56.101 demo2 
192.168.56.102 demo3