天天看點

部署ruby_on_rails項目到nginx上

1、配置production環境

部署ruby_on_rails項目到nginx之前,先要使項目在production環境上跑起來。我使用的是預設資料庫sqlite3。

在Gemfile中添加:

gem 'yaml_db' 
           

 然後進行bundle安裝

bundle install  
rake db:dump  //遷移資料庫      

 配置生産環境使用的資料庫:在config/database.yml檔案添加如下内容: 

production:  
  <<: *default  
  database: db/development.sqlite3 
           

然後加載資料庫:

rake db:load   RAILS_ENV='production'       

生成安全密鑰:

rake secret        

 生成一段符号,加到secrets.yml檔案裡,如: 

production:
  secret_key_base: 52761ca9d6a033907f27619e87c5a642007cd12be1ae2aebd179ebb690610b37ebd55941ff09bf9e5105265280e
           

修改/config/enviroment/production.rb裡的屬性,如下,加載CSS等功能樣式

config.serve_static_assets = true 
           

 最後運作,讓工程跑起來

rails s -e production         

 2、安裝passenger、nginx

安裝passenger:

sudo gem install passenger        

安裝nginx到預設安裝路徑:

sudo passenger-install-nginx-module        

在安裝過程中會遇到有些包需要手動安裝,我們需要使用apt-get進行安裝,可能 apt-get安裝不上去,提示連接配接不到源,你需要更改apt-get源檔案,具體位址為:/etc/apt/sources.list.d/official-package-repositories.list

安裝nginx啟動腳本:

cd ~/    
git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git    
sudo cp rails-nginx-passenger-ubuntu/nginx/nginx  /etc/init.d/nginx    
sudo chmod +x /etc/init.d/nginx        

 配置nginx:

以root身份打開nginx的預設安裝目錄/opt/nginx/conf/nginx.conf,修改為如下:

server {  
        listen       80;  //端口号  
        server_name  localhost;  
        rails_env development;  
          
        #charset koi8-r;  
  
        #access_log  logs/host.access.log  main;  
  
        location / {  
        root  /home/rails_projects/huodongtong/public;   //rails工程pubilc的路徑  
        passenger_enabled on;  
        } 
           

 啟動nginx服務:

sudo /etc/init.d/nginx start      

 停止nginx服務:

sudo /etc/init.d/nginx stop      

 重新開機nginx服務:

sudo /etc/init.d/nginx restart      

 在浏覽器上輸入localhost(如果不是80端口就要使用localhost:端口号),就可以看到自己的工程項目,别人可通過ip通路你的服務項目

繼續閱讀