现在的位置: 首页 > 综合 > 正文

在Amazon EC2实例上安装配置rails3+nginx运行环境

2013年08月23日 ⁄ 综合 ⁄ 共 2596字 ⁄ 字号 评论关闭

环境:Ubuntu LTS 12.04 (Free Usage Tier)

0、预备:

0.1、更新系统 
$ sudo apt-get update
$ sudo apt-get upgrade
0.2、安装编译环境
$ sudo apt-get install build-essential git-core  
$ sudo apt-get install curl  
1、安装rvm和ruby1.9.3
1.1、安装rvm
执行以下命令:
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)  
修改.bashrc文件,注意/home/ubuntu中的ubuntu是用户名,需要替换为你自己的。
$ echo '[[ -s "/home/ubuntu/.rvm/scripts/rvm" ]] && source "/home/ubuntu/.rvm/scripts/rvm"' >> ~/.bashrc  
(或者echo "source \$HOME/.rvm/scripts/rvm" >> ~/.bashrc)
让修改马上生效,执行:
$ source .bashrc

1.2、安装ruby1.9.3
安装zlib1g
$ sudo apt-get install zlib1g zlib1g-dev
安装openssl
$ rvm pkg install openssl

安装:(这一步比较费时间,估计需要十几分钟)
$ rvm install 1.9.3 --with-openssl-dir=$HOME/.rvm/usr
设置缺省:
$ rvm use --default 1.9.3 
$ rvm gemset use global
$ gem list

$ rvm ruby-1.9.3-p194@rails326 --create --default
$ rvm gemset list

1.3、安装rails3
$ gem install rails

安装sqlite
$ sudo apt-get install sqlite3 libsqlite3-dev

2、测试rails环境
2.1、创建一个测试应用: FirstApp,路径为:~/webapps/FirstApp(~指向当前用户的根目录,下同)
$ cd 
$ mkdir webapps
$ cd webapps
$ rails new FirstApp
$ cd FirstApp
2.2、编辑Gemfile
$ nano Gemfile
使用nano编辑Gemfile,在Gemfile中添加下行,
gem 'therubyracer'
然后保存退出。执行
$ bundle install
2.3、运行Rails服务
$ rails s
2.4、打开浏览器访问:(端口3000需要在EC2实例的安全策略中进行添加)

http://ec2-x-x-x-x.ap-southeast-1.compute.amazonaws.com:3000

若成功打开,则rails安装完成。(x-x-x-x是你的EC2实例的IP)

3、安装nginx+passenger
3.1、安装passenger
$ gem install passenger
3.2、安装ngigx
先安装依赖包:
$ sudo apt-get install libcurl4-openssl-dev
然后执行以下命令将安装nginx,其间会出现两个选择:选1将安装nginx1.2.1。
$ rvmsudo passenger-install-nginx-module
默认安装路径为:/opt/nginx。

3.3、下载nginx启动脚本
$ git clone https://github.com/hulihanapplications/nginx-init-debian.git
$ cd nginx-init-debian
$ sudo cp etc/init/nginx.conf /etc/init
$ sudo start nginx

3.4、在nginx中配置firstapp
在/opt/nginx/html下添加一个链接,注意需要链接到rails项目的public目录。
$ pwd
/opt/nginx/html
$ sudo ln -s ~/webapps/FirstApp/public/ firstapp
然后编辑nginx.conf文件
$ sudo nano /opt/nginx/conf/nginx.conf
在server段,加入以下两行:
       passenger_enabled on;        
       passenger_base_uri /firstapp; 
并修改 server_name: localhost 为:server_name: www.yourdomain.com
保存退出。(yourdomain.com是你自己的域名。)
重启nginx:
$ sudo restart nginx
或使用
$ sudo stop nginx
$ sudo start nginx
3.5、测试配置结果:
打开浏览器,访问:http://www.yourdomain.com/firstapp

【附1】阻止安装ri,rdoc文档

创建~/.gemrc文件:

$ cat .gemrc  (注:这一条为命令,查看.gemrc文件的内容)
---
:backtrace: false
:benchmark: false
:bulk_threshold: 1000
:sources:
- https://rubygems.org
:update_sources: true
:verbose: true
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri

【附2】安装过程中曾出现zlib错误,尝试下面的方法:失败。使用上面的方法成功。
$ rvm remove 1.9.3 
$ rvm pkg install zlib
(or rvm package install zlib)

$ rvm install 1.9.3 --with-zlib-dir=$rvm_path/usr

参考:

1)http://www.andrehonsberg.com/article/install-rvm-ubuntu-1204-linux-for-ruby-193
2)http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_a_rack_app

抱歉!评论已关闭.