Ubuntu 14.04 上使用 Nginx Passenger 部署 Ruby on Rails

本教程将会涉及以下工具:

  • Ubuntu 14.04 LTS

  • RVM

  • Ruby 2.1.1

  • Rails 4.0.3

  • Passenger 4.0+

  • Nginx(由 Passenger 编译)

推荐通过 Vagrant 搭建虚拟机环境进行练习。

创建帐号

假设你已经用 root 帐号通过 SSH 登陆服务器。

出于安全考虑,不要使用 root 帐号运行 web 应用。这里新建一个专门用于部署的用户,例如 deploy 或者其它你喜欢的名字。运行以下命令创建用户:

# useradd -m -s /bin/bash deploy

将用户加入 sudo 群组,以便使用 sudo 命令:

# adduser deploy sudo

为 deploy 用户设置密码:

# passwd deploy

退出当前 SSH 链接,用 deploy 帐号重新登陆。

安装 RVM 和 Ruby

更新 apt,并安装 curl:

$ sudo apt-get update
$ sudo apt-get install curl

然后安装 RVM:

$ \curl -sSL https://get.rvm.io | bash

RVM 安装完毕后,重新登陆 SSH,让 RVM 配置生效。然后安装 Ruby 2.1.1:

$ rvm use --install --default 2.1.1

Ruby 安装过程会请求 apt-get update 的权限,并自动安装系统依赖。安装完毕后,确认目前的 Ruby 版本:

$ ruby -v

应该看到 ruby 2.1.1 字样。

安装 Passenger

Passenger 是一个 app server,支持基于 Rack 框架的 Ruby app(包括 Rails)。Passenger 的特点是需要作为模块编译到 Nginx 中,优点是配置简单,不需要自己写启动脚本。

安装 Passenger 最简单的方法是通过 apt 安装,首先导入 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 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

现在修改 nginx 配置,编辑 /etc/nginx/nginx.conf,找到这两行注释:

# passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;# passenger_ruby /usr/bin/ruby;

将它修改为:

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;passenger_ruby /home/deploy/.rvm/wrappers/default/ruby;

这会打开 Passenger 支持,并且指定使用之前用 rvm 安装的 ruby 版本。

上传文件

用你喜欢的方法把项目上传到服务器上,例如 git(推荐)或 rsync,假设你使用 git,并且使用 github 的公开源。

创建站点文件夹:

$ sudo mkdir -p /var/www/example.com
$ sudo chown deploy:deploy /var/www/example.com

clone 项目文件:

$ cd /var/www/example.com
/var/www/example.com $ git clone https://github.com/YOURNAME/REPO.git current

取决于你的应用,这里需要安装数据库等其他系统组件,例如 PostgreSQL:

$ sudo apt-get install postgresql libpq-dev

执行 bundle 和 migrate:

/var/www/example.com $ cd current
/var/www/example.com/current $ bundle install
/var/www/example.com/current $ RAILS_ENV=production rake db:create db:migrate

执行 assets precompile:

/var/www/example.com/current $ rake assets:precompile

修改 Nginx 配置

删除原有的默认网站配置:

$ rm /etc/nginx/sites-enabled/default

新建网站配置:

$ touch /etc/nginx/sites-enabled/example.com.conf

编辑 /etc/nginx/sites-enabled/example.com.conf,写入以下内容:

server {    listen 80 default;    server_name example.com; # 这里填写你真实域名    root /var/www/example.com/current/public;    passenger_enabled on;}

重启 nginx:

$ sudo service nginx restart

完成

在浏览器打开服务器的 IP 地址或域名,应该看到你的网站在运行。

https://github.com/ruby-china/ruby-china/wiki/Ubuntu-14.04-%E4%B8%8A%E4%BD%BF%E7%94%A8-Nginx-Passenger-%E9%83%A8%E7%BD%B2-Ruby-on-Rails

转载于:https://my.oschina.net/dearmark/blog/291760

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值