Rails部署(passenger和nginx)

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'
  }
  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容