在Amazon EC2實例上安裝配置rails3+nginx運行環境

環境: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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章