xiyou 发表于 2016-12-25 09:17:35

部署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_namelocalhost;
rails_env development;
#charset koi8-r;
#access_loglogs/host.access.logmain;
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访问你的服务项目
 
页: [1]
查看完整版本: 部署ruby_on_rails项目到nginx上