在 Ubuntu 14.04 Server 上安装部署 Ruby on Rails 应用

前言

  1. 本教程只适合 ubuntu server 用于部署项目到线上,建议使用同样的 Ubuntu 版本,以免遇到一些版本不同带来的问题。
  2. 本教程适合新手初次部署 Rails 应用;

本文测试通过环境

  • Ubuntu 14.04 Server,

配置 Ubuntu Server 系统

如果你是国内服务器,推荐修改网易的源

http://mirrors.163.com/.help/ubuntu.html

然后更新一下:

$ sudo apt-get update 
$ sudo apt-get upgrade -y

安装 Ruby, Rails 及相关

安装 RVM

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

这个时候需要 logout 然后重新 login,login 之后,检查 rvm 环境是否已经正确载入

rvm info

安装 Ruby

用 RVM 安装 Ruby:

$ rvm install 2.1.1
$ rvm use 2.1.1 --default

国内服务器推荐替换 RubyGems 的到淘宝镜像:

$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l
*** CURRENT SOURCES ***

https://ruby.taobao.org # 请确保只有 ruby.taobao.org

安装 Rails

$ gem install rails
$ rails -v

安装 MySQL 或其他数据库

当然,如果你的项目是用的其他数据库,请自己解决

$ sudo apt-get install mysql-server 

跟着提示安装,此处涉及东西在本教程之外,请自行 Google 相关教程解决。

部署你的网站

接下来你可以通过 Git 或其他方式将你项目的源代码提交到服务器上面,建议放到用户的 ~/www 下面。

为了方便教程,我们假设,用户是 jason (拥有 sudo 权限), 项目名 gitlab 后面遇到类似的地方请更具自己的情况修改

$ cd ~/
$ pwd
/home/jason/
$ mkdir www
$ cd www
$ git clone [email protected]:gitlab.git
$ cd gitlab
$ bundle install

修改你的数据库配置,创建数据库,合并 migration …这些是 Rails 开发的基础,这里就不细说了,重点是最后你能让你的项目能用 rails s 跑起来!

$ rails s -e production

安装 Passenger 用于部署 Rails 应用

$ gem install passenger
$ passenger -v
Phusion Passenger version 4.0.10

由于 Passenger 需要重新编译 Nginx,如果你之前有安装 Nginx 需要卸载掉!
nginx -v,有的话卸载 $ sudo apt-get remove nginx-common nginx-full nginx

用 Passenger 安装 Nginx

$ rvmsudo passenger-install-nginx-module

接下来会出现提示,选择 Yes: download, compile and install Nginx for me. (recommended) ,对于后面的提示一直选默认哪项,敲回车。

最后看到

Nginx with Passenger support was successfully installed.

表示你人品很好 Nginx 安装成功!否则请看 Passenger 官方安装文档 自行解决……

如果在编译过程中,出现内存不足的情况下,可以添加虚拟内存来处理,详情见:https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04 。注意添加的虚拟内存建议是1倍或2倍于物理内存。

安装 Nginx init script

接下来你需要安装 Nginx 的启动脚本,以及配置开机自动启动

$ cd ~/
$ git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git
$ sudo mv rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/nginx
$ sudo chmod +x /etc/init.d/nginx

配置 Nginx 开机自启动

$ sudo update-rc.d nginx defaults

配置 Nginx 与网站

打开 Nginx 的 nginx.conf

$ sudo vim /opt/nginx/conf/nginx.conf

PS: 如果你不是 Passenger 安装的 Nginx,这个配置文件还有可能在 /usr/local/nginx/ 或 /etc/nginx 下面

请参考下面的例子修改:

user jason; # 修改成你的系统帐号名,不然项目目录 /home/jason/www 这里没有权限
worker_processes 8; # 修改成和你 CPU 核数一样
pid /var/run/nginx.pid;

http {
  include      mime.types;
  default_type  application/octet-stream;

  client_max_body_size 50m;

  sendfile        on;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  gzip on;
  gzip_disable “msie6”;

  ## ———— 重点修改内容 ——–

  server {   
    # 此处用于防止其他的域名绑定到你的网站上面
    listen 80 default;
    return 403;
  }

  server {
    listen      80;
    server_name  you.host.name; # 请替换成你网站的域名
    rails_env    production;
    root        /home/jason/www/gitlab/public;
    passenger_enabled on;

    location ~ ^(/assets) {
      access_log        off;
      # 设置 assets 下面的浏览器缓存时间为最大值(由于 Rails Assets Pipline 的文件名是根据文件修改产生的 MD5 digest 文件名,所以此处可以放心开启)
      expires          max;
    }
  }

  ## ———————————
}

重启 Nginx

$ sudo /etc/init.d/nginx start

部署完成!可以尝试访问你的域名。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148346.htm

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/3848.html

(0)
晴川运维晴川运维
上一篇 2025年6月4日
下一篇 2025年6月4日

相关推荐

  • Ubuntu中安装本地APT软件包仓库具体方法

    Apt 是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了 Unix 系统上管理软件的过程,现在可以安装 RPM 软…

    Ubuntu 2025年6月8日
  • Ubuntu 18.10 “Cosmic Cuttlefish”将于2018年10月18日发布

    现在已经我们知道了下一个Ubuntu版本Ubuntu 18.10的代号,现在该仔细看看发布时间表,该发布时间表在此周期中发生了一些变化,并且提出了发布日期。 Ubuntu 18.1…

    Ubuntu 2025年10月7日
  • Ubuntu 16.04 安装 WineHQ

    ubuntu 16.04 安装WineHQ 如果你曾经安装过其它软件源中的Wine,请在安装WineHQ之前将其移除,并且同时移除依赖它的软件,比如wine-mono, wine-…

    Ubuntu 2025年6月21日
  • Ubuntu MATE 18.04 LTS将为Mutiny布局带来无框窗口装饰

    截图为 ubuntu MATE 16.04 LTS 由项目负责人Martin Wimpress发起的即将到来的Ubuntu MATE 18.04 LTS(仿生海狸)操作系统迄今的最…

    Ubuntu 2025年6月8日
  • 推荐新手使用Ubuntu的八个原因

    Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统。Ubuntu的目标在于为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成的操作系统。 1…

    Ubuntu 2025年9月19日
  • 如何在Ubuntu 16.04上安装Nim

    概述 Nim是: 一个系统和应用程序编程语言。 静态类型和编译,它提供了一个优雅的包装无与伦比的性能。 Nim提供: 高性能垃圾收集的语言 编译为C,C ++或JavaScript…

    Ubuntu 2025年6月8日
  • Ubuntu自定义终端窗口位置

    方法一: 自定义终端启动快捷键 具体方法是自定义一个快速启动终端的快捷键,附带设置终端启动时的位置参数。首先获得需要放置窗口的目标位置信息,可以通过终端命令“ xwininfo ”…

    Ubuntu 2025年6月26日
  • Ubuntu继续为ZFS安装支持工作,但是没有赶上19.04

    在过去的几个月中,我们看到Canonical开发人员在Ubuntu桌面和ZFS根分区支持上支持ZFS,以便可以(可选)将Ubuntu桌面安装到Linux分区上的ZFS。这项工作一直…

    Ubuntu 2025年10月6日
  • Ubuntu 安装 Memcached具体步骤

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度…

    Ubuntu 2025年10月25日
  • Ubuntu 19.04 代号 “Disco Dingo”,计划于2019年4月18日发布

    在揭开ubuntu 18.10(Cosmic Cuttlefish)发行版的面纱后,canonical公司现在开始了下一个主要发行版Ubuntu 19.04的开发周期,该发行版将于…

    Ubuntu 2025年7月1日

发表回复

登录后才能评论