美文网首页
rails部署

rails部署

作者: Jayzen | 来源:发表于2016-07-27 10:31 被阅读356次

production中key缺失问题

#该问题在部署nginx的时候会呈现出如下的表现形式
Incomplete response received from application

rails secret RAILS_ENV=production #生成key
#复制上面的值,粘贴到config/secret.yml中相应的production位置

production环境下样式缺失问题

#config/initializers/assets.rb中添加/app/assets/中所有的js和css样式,包括其他格式
#例子:
Rails.application.config.assets.precompile += %w( 
application.css article.scss  )

mac下进行passenger和nginx部署

#步骤1:相关软件和依赖
ruby2.3.0;rvm;xcode;rails5.0.0
#新建一个项目nginx_demo,并且启动
rails new nginx_demo
rails s

#步骤2:安装passenger和nginx
passenger是一个app server,支持基于Rack框架的 Ruby app(包括 Rails)
因为Nginx不支持动态module载入,所以需要通过Passenger来自动下载,编译,安装由Passenger修改版的Nginx

gem install passenger #gem 安装 passenger
passenger-install-nginx-module #安装nginx
安装nginx注意两个问题
1.选择步骤1
2.填写路径:/usr/local/nginx

将nginx命令行程序连接到/usr/local/bin
sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin

#步骤3:配置Nginx + Passenger + Rails
修改hosts文件,给你的项目一个本地域名, 比如nginx_demo
$ sudo vim /etc/hosts
127.0.0.1 nginx_demo

测试hosts
$ ping nginx_demo


配置Nginx, 这里我给出一个最小可运行的Nginx配置文件
$ vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events { worker_connections 1024;}
http { 
  passenger_root /Users/jayzen/.rvm/gems/ruby-2.3.0-p290/gems/passenger-3.0.10; 
  passenger_ruby /Users/jayzen/.rvm/wrappers/ruby-2.3.0-p290/ruby; 

  include mime.types; 
  default_type application/octet-stream; sendfile on; 
  keepalive_timeout 65; 
  
  server { 
    listen 80; 
    server_name nginx_demo; 
    root /Users/jayzen/workshop/nginx/public; 
    passenger_enabled on;
    rails_env development; }
}


测试Nginx的配置文件语法是否正确
$ sudo nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

启动Nginx
$ sudo nginx

如何在修改Nginx的配置文件后,让Nginx载入新配置
$ sudo nginx -s reload

如何停止Nginx
$ sudo nginx -s stop

如何在不停Nginx的情况下,重新启动Passenger
$ cd workshop/nginx_demo
$ touch tmp/restart.txt

#访问
http://nginx_demo

阿里云远程连接ubuntu

独立IP地址是:120.26.141.56
mac(linux)登录ubuntu方式:ssh root@120.26.141.56

window登录ubuntu方式:使用putty软件:
ip如上所示,端口号是22,登录方式是ssh,登录的用户名是root

阿里云中安装nginx和运行

登录
#更新软件源
apt-get update
#安装nginx
apt-get -y install nginx
#查看nginx的运行状态
service service status

#查看nginx运行文件存放位置
vim /etc/nginx/sites-enabled/default
可知存放文件在此位置:root /usr/share/nginx/html #将需要运行的文件放置此位置

ubuntu14.04使用passenger和nginx部署rails

第一步:安装rvm ruby2.3.0 rails5.0.0
注意的问题是.bashrc中添加相关代码以启动rvm

第二步:安装passenger和nginx
#导入passenger密匙
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
#安装 apt 插件以支持 https 传输:
sudo apt-get install apt-transport-https ca-certificates
#添加 apt 源(对应 Ubuntu 14.04 LTS):
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update
#安装 Passenger 的包:
sudo apt-get install nginx-extras passenger

第三步:修改配置文件
#/etc/nginx/nginx.conf中添加下面两行到http中
#这会打开 Passenger 支持,并且指定使用之前用 rvm 安装的 ruby 版本
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/deploy/.rvm/wrappers/default/ruby;

#删除和新建配置
rm /etc/nginx/sites-enabled/default
touch /etc/nginx/sites-enabled/example.com.conf

#example.com.conf添加如下代码
server {
    listen 80 default;
    server_name example.com; # 这里填写你真实域名
    root /var/www/example.com/current/public; #current是项目名称
    passenger_enabled on;
    passenger_app_env production;#模式就是production,这里可以省略
}

#current项目需要进行如下操作
bundle install
#生成production环境下的数据库
RAILS_ENV=production rake db:create db:migrate
#样式编译
rake assets:precompile
#添加key到config/sercret.yml的production中
rails secret RAILS_ENV=production

第四步:添加root路由和重启nginx
#config/routes.rb
root to: 'homes/index'
#重启nginx
sudo service nginx restart

相关文章

  • rails创建项目并使用bootstrap

    rails 5.0 安装部署 1、新项目创建 rails new railsproject --skip-bund...

  • rails部署

    production中key缺失问题 production环境下样式缺失问题 mac下进行passenger和ng...

  • rails4升级到rails5

    将近一天的折腾,把rails4升级到了rails5,部署到了服务器 Rails4 -> Rails5 修改Gemf...

  • nginx 部署rails

    安装nginx所需的linux包sudo apt-get install build-essential biso...

  • Ruby on Rails部署

    今天开始部署我的rails项目。下面记录整个过程: 把gem source改成淘宝镜像以提高rails安装速度 2...

  • 部署rails项目

    尝试安装rails的时候 出现了版本冲突报错 关键查看zeitwerk requires Ruby version...

  • Capistrano

    使用 Capistrano —— Rails应用快速部署工具http://www.oschina.net/tran...

  • ubuntu14.04 安装 Rails 环境, Nginx P

    ubuntu14.04 安装 Rails 环境, Nginx Passenger 新建部署用户 安装ruby 安装...

  • docker-compose 部署gitlab,jenkins

    一、Docker Compose 部署 GitLab GitLab 是利用 Ruby on Rails 一个开源的...

  • Introduction

    Ruby on Rails 是一种让开发,部署和维护网站应用轻松的框架。在初始版本发布后的几个月间,Rails 从...

网友评论

      本文标题:rails部署

      本文链接:https://www.haomeiwen.com/subject/juanjttx.html