Ubuntu 14.04 上使用 Nginx Passenger 部署 Ruby on Rails
2014-07-17 00:42
555 查看
本教程将会涉及以下工具:
Ubuntu 14.04 LTS
RVM
Ruby 2.1.1
Rails 4.0.3
Passenger 4.0+
Nginx(由 Passenger 编译)
推荐通过 Vagrant 搭建虚拟机环境进行练习。
出于安全考虑,不要使用 root 帐号运行 web 应用。这里新建一个专门用于部署的用户,例如 deploy 或者其它你喜欢的名字。运行以下命令创建用户:
将用户加入 sudo 群组,以便使用 sudo 命令:
为 deploy 用户设置密码:
退出当前 SSH 链接,用 deploy 帐号重新登陆。
然后安装 RVM:
RVM 安装完毕后,重新登陆 SSH,让 RVM 配置生效。然后安装 Ruby 2.1.1:
Ruby 安装过程会请求
应该看到
安装 Passenger 最简单的方法是通过 apt 安装,首先导入 Passenger 的密钥(官方文档):
安装 apt 插件以支持 https 传输:
添加 apt 源(对应 Ubuntu 14.04 LTS):
安装 Passenger 的包:
现在修改 nginx 配置,编辑
将它修改为:
这会打开 Passenger 支持,并且指定使用之前用 rvm 安装的 ruby 版本。
创建站点文件夹:
clone 项目文件:
取决于你的应用,这里需要安装数据库等其他系统组件,例如 PostgreSQL:
执行 bundle 和 migrate:
执行 assets precompile:
新建网站配置:
编辑
重启 nginx:
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
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
相关文章推荐
- Ruby On Rails(Ubuntu64位14.04) 服务器部署
- Ubuntu 14.04 LTS 系统中使用rbenv配置Ruby on Rails环境
- 在 Ubuntu 14.04 Server 上安装部署 Ruby on Rails 应用
- 在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用
- Ubuntu14.04上搭建ruby on rails 环境全过程
- 部署之使用 mina 来部署 Ruby on Rails 应用之基础
- 使用passenger+nginx在Ubuntu14.04服务器上部署rails应用填坑记
- Ubuntu 16.04上使用Nginx Passenger 部署 Rails
- ubuntu 14.04中安装 ruby on rails 环境(填坑)
- Ubuntu开发ruby on rails(使用windows上mysql)ip地址变动
- Ruby On Rails(Ubuntu64位12.04) 服务器部署
- Ruby on Rails,在ubuntu中安装及使用rvm管理ruby版本
- ruby on rails安装(ubuntu 14.04)
- How To Use MySQL with Your Ruby on Rails Application on Ubuntu 14.04
- 在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用
- 使用Nginx+Passenger部署Ruby on Rails环境
- ubuntu14.04安装ruby on rails
- ubuntu 14.04中安装ruby on rails环境(填坑版)
- Install Ruby on rails on Ubuntu 14.04 LST
- 告别 ROR windows 部署的噩梦-在 windows 上面 使用 Apache 部署 Ruby On Rails