Rails部署(passenger和nginx)

2016-06-04  本文已影响1015人  yaya_pangdun

1、安装passenger

sudo gem install passenger

2、安装带passenger插件的nginx
自动下载编译nginx

sudo passenger-install-nginx-module

默认安装路径/opt/nginx
3、配置nginx
默认配置文件路径/opt/nginx/conf/nginx.conf

http {
  passenger_root /Users/ecloud/..../ruby/gems/2.3.0/gems/passenger-5.0.28;
  passenger_ruby /Users/ecloud/.rbenv/versions/2.3.1/bin/ruby;
}

passenger_buy就是执行which ruby找到的路径,passenger_root是passenger_ruby的下级目录

其他配置

4、配置rails production环境
进入项目目录

rake secret

将输出复制到/config/secret.yml中的secret_key_base这一项中
5、运行nginx

sudo /opt/nginx/sbin/nginx

6、 ## 自动化部署
Gemfile添加

gem 'capistrano-rails'
gem 'capistrano-passenger'

在项目目录下运行

cap install  #bundle exec cap install

主要文件解释
1、config/deploy.rb 主配置文件
所有部署/回滚中需要自动执行的自定义任务都可以挂在这里
2、config/deploy/*.rb 针对不同环境的配置
配置服务器的IP、登录用户名之类的变量,由于这些文件会被提交到git上,所以密码不要配置到文件中。最好使用ssh公钥验证。
3、lib/capistrano/tasks 文件夹放置自定义脚本,脚本必须以.rake结尾

修改config/deploy.rb文件

set :application, 'my-app'
set :scm, :git #如果使用svn,改成 :svn
set :repo_url, '<remote repo url>' #remote仓库的url
set :deploy_to, '/var/www/my_app' #默认部署位置

修改config/deploy/staging.rb

#根据实际服务器的ip/域名和用户名修改下面
 server 'example.com',
  user: 'user_name',
  roles: %w{web app},
  ssh_options: {
    user: 'user_name', # overrides user setting above
    keys: %w(/home/user_name/.ssh/id_rsa),
    forward_agent: false,
    auth_methods: %w(publickey password)
    # password: 'please use keys'
  }
  
上一篇 下一篇

猜你喜欢

热点阅读