`
poppinhai
  • 浏览: 4914 次
社区版块
存档分类
最新评论

Nginx+Unicorn+Mysql部署rails

 
阅读更多

第 0 步:购买 VPS

推荐购买 DigitalOcean 的 VPS,价格很便宜,适合初学者

 

第 1 步:使用 Root 登录 VPS

假设你的VPS IP 地址为:

198.199.119.188

 

$ ssh root@198.199.119.188

 输入 root 密码登录。

 

注意: 如果是第一次登录服务器,SSH 会输出类似这样的提示:

 

The authenticity of host '198.199.119.188 (198.199.119.188)' can't be established.
RSA key fingerprint is ff:5c:ac:af:de:c1:fc:f3:13:4f:c1:bc:fc:7b:8e:c1.
Are you sure you want to continue connecting (yes/no)?

 这时候输入 yes 就可以了。

 

第 2 步:添加 deploy 用户

由于 root 拥有最大的权限,很容易出现误操作(导致系统损坏),所以我们推荐使用普通用户来部署 Rails 项目。

添加一个新用户的方法如下:

$ adduser deploy

 按照提示,输入该用户的密码,然后一直按回车就行了(其他的信息留空即可)。

 

 然后把 deploy 用户添加到 sudo 用户组:

 这样 deploy 用户就可以安装所需要的软件包了

 

第 3 步:切换到 deploy 用户

 

$ su -l deploy

 -l(小写的L)选项,用于模拟完整的登录(Simulate a full login)。

 

 

第 4 步:安装基础软件

首先更新软源:

 

$ sudo apt-get update

 然后安装 curl, wget, git-core

$ sudo apt-get install curl wget git-core

 

第 5 步:使用 RVM 安装 ruby

首先安装 RVM:

 

$ curl -L https://get.rvm.io | bash -s stable
$ source ~/.rvm/scripts/rvm

 然后安装 ruby 1.9.3:

 

 

$ rvm install 1.9.3

 

 

第 6 步:安装 MySQL

 

$ sudo apt-get install mysql-server-5.5 libmysqlclient-dev

 

 

第 7 步:安装 Nginx / Node.js

 

$ sudo apt-get install nginx nodejs

 

 

第 8 步:下载 项目源码 以:Rails Weekly 源代码

 

$ cd $HOME
$ mkdir sites
$ cd ./sites
$ git clone git://github.com/daqing/rails_weekly.git

 注意:github地址我们选择 Git read-only的地址

 

第 9 步:安装所需的 Gem

 

$ cd rails_weekly
$ bundle install --without development test

 

 

第 10 步:创建数据库

 

$ cp config/database.yml.example config/database.yml

 我们要进入database.yml,修改数据库密码和用户名:

 

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: testm_production
  pool: 5
  username: root
  password: root
  socket: /var/run/mysqld/mysqld.sock

 我们只修改production下的内容就可以

 

 然后我们在终端内输入

 

mysql_config --socket

 用返回的地址替换掉socket:后面的路径

 

 

 然后执行以下命令:

 

$ RAILS_ENV=production rake db:create

 

 

第 11 步:预编译 assets

 

$ RAILS_ENV=production rake assets:precompile

 

 

第 12 步:编写Unicorn.rb、Nginx.conf

 大家可以去google搜索一下如何编写Unicorn.rb、Nginx.conf。

第 13 步:启动 Unicorn

 

$ chmod a+w ./tmp/*
$ bundle exec unicorn -c `pwd`/config/unicorn.rb -E production -D

 

 

 

他会提示我们缺少

 

tmp/pids/unicorn.pid not writable (ArgumentError)

 解决方法在shell下执行

 

 

$ mkdir -p tmp/pids
$ touch tmp/pids/unicorn.pid
$ cat config/unicorn.rb

 

 查看unicorn端口:ps aux|grep unico

第 14 步:配置 Nginx

 

$ sudo cp config/nginx-example.conf /etc/nginx/conf.d/rails_weekly.conf

 然后启动 Nginx:

$ sudo /etc/init.d/nginx start

 

 

 

 

 

 

分享到:
评论

相关推荐

    docker-rails-nginx-unicorn:Docker Rails + Nginx + Unicorn(来自Ubuntu 16.04和Ruby 2.4.0)

    docker-rails-nginx-unicorn Docker Rails + Nginx + Unicorn(来自Ubuntu 16.04和Ruby 2.4.0) 易于使用的docker导轨。 较少的配置,负担得起的生产。 包括什么 独角兽,nginx,领班 mysql,PostgreSQL库 用法 在...

    Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略

    通过以上步骤,你就成功地在Linux系统上配置了Nginx、Ruby on Rails和MySQL的环境,可以开始开发和部署你的Rails应用了。记得在实际生产环境中,还需要考虑安全、日志管理和性能优化等更多细节。

    利用Unicorn和Nginx部署Redmine

    标题中的“利用Unicorn和Nginx部署Redmine”指的是在服务器上安装并配置Redmine项目管理工具,通过Unicorn作为应用服务器,Nginx作为反向代理和负载均衡器,来提供高效、稳定的服务。这是一个常见的Web应用程序部署...

    基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0

    在构建高性能、高可用性的Web应用环境中,"基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0"的方案是一个常见的选择。这个方案结合了多种强大的工具和技术,以确保应用程序的稳定运行和高效管理。以下是这些关键...

    再次发一本部署rails的书

    4. **数据库部署**:讨论MySQL、PostgreSQL等数据库的安装与配置,以及数据迁移策略,包括Rails的数据库迁移工具`db:migrate`。 5. **环境变量与配置**:讲解如何管理生产环境中的敏感信息,如API密钥、数据库连接...

    Rails4-Start-Up:rails4为ruby 2.1.2启动

    数据库:MySQL 计划任务:whenever 备份:backup 文件上传:qiniu 编辑器:simditor 缓存:Memcached + redis 任务队列:sidekiq 服务器和站点监控:New relic + monit + god 部署:Capistrano3 邮件发送:sendcloud...

    ruby on rails

    5. **Web服务器**:Rails提供了内置的Webrick服务器用于开发,但在生产环境中,推荐使用如Puma、Unicorn或Nginx+Passenger等高性能服务器。 6. **开发工具**:如TextMate、Sublime Text、VS Code或Atom等文本编辑器...

    rails web server deploy guide

    标题 "rails web server deploy guide" 暗示了本文将关注如何部署Rails应用程序到Web服务器。Rails是Ruby on Rails的简称,是一个流行的开源Web开发框架,用于构建动态、数据驱动的网站。部署Rails应用通常涉及将...

    my_teacher:为辅导员派遣中心创建网站您可以搜索适合您的教师。 Ruby on Rails5 Haml SCSS jQuery MySQL Nginx Unicorn Capistrano AWS(EC2,S3)

    您可以注册最方便的日期顶部屏幕新注册画面个人资料图片预览实现登入画面讲师列表画面讲师注册画面讲师信息详细画面我的页面网站网址...Rails 5.0.7.2 MySQl 5.3 AWS EC2 x S3服务器部署Nginx x Capistrono 数据库设计...

    使用Mina轻松部署Rails(而且确实非常快!)

    8. **服务器优化**:通过Nginx或Apache作为反向代理,Puma或Unicorn作为应用服务器,优化Rails应用的性能。 9. **故障排查**:学习如何处理常见的部署问题,如权限错误、依赖冲突、数据库迁移失败等。 10. **持续...

    rails-fed-chef:厨师厨房,用于设置与铁轨堆栈一起使用的服务器

    食谱包括postgres,mysql,nginx,unicorn,nodejs,redis和memcache。 它还尝试执行一些典型的任务,例如postgres备份,设置ufw防火墙规则以及安装fail2ban。入门 git clone git@github....

    webfaction-rails-environment:使用 monit 和 nginx 为 WebFaction 构建和配置您自己的私有 Rails 环境的脚本

    libevent) ruby (+ autoconf + openssl + libffi + yaml + gdbm) [tarball 或 subversion,见RUBY_SVN变量] rubygems:rack、rails、thin、unicorn、passenger、capistrano、sqlite3、mysql、pg、psych(注释掉)、...

    saleinfo_aggregation

    通过以上分析,我们可以看到saleinfo_aggregation项目充分利用了Ruby on Rails的优势,结合MySQL数据库和Nginx/Unicorn服务器,构建了一个高效、可靠的讨价还价信息收集系统。对这个项目的深入研究和实践,不仅可以...

    RUBYONRAILS服务器配置[总结].pdf

    - **Nginx**: 作为反向代理服务器,处理HTTP请求,将流量转发到Rails应用的Puma或 Unicorn等Web服务器。 - **Redis**: 用于缓存、队列和其他内存对象存储,例如Sidekiq后台任务队列。 - **Node.js**: 在某些情况...

    capistrano-recipes:我们的Capistrano食谱

    使用capistrano进行... monit (在端口2812上运行其Web界面)来管理数据库( mysql或postgres ,可配置),nginx并监视unicorn实例和所有先前服务的资源使用情况。 检查recipes/templates/monit下的每个文件以获取服

    brimir:使用Ruby on Rails和Zurb Foundation构建的电子邮件服务台

    我们自己使用Phusion Passenger( mod_rails ),但您也可以使用Thin,Puma或Unicorn。 可以为Nginx或Apache安装Phusion Passenger,您可以选择最喜欢的一种。 安装因您的发行版而异,因此请查看其或。 设置Web...

    检查器

    Ruby / Ruby on Rails / MySQL / HTMLCSSJavaScript / GitHub / AWS(EC2,Route53) 開発環境  エディタ:Visual Studio Code  管理ツール:GitHub,trello  言語・フレームワーク:Ruby・HTMLCSSJavaScript・...

    bookers

    7. **部署和服务器管理**:如果 "bookers" 是生产应用,那么了解如何部署到Heroku、AWS、DigitalOcean或其他云平台,以及如何配置Nginx、 Unicorn 或Puma等服务器软件也是必要的。 8. **测试驱动开发**:Ruby 社区...

    Ruby_stack

    Rails 提供了丰富的库和自动化工具,使得开发者可以快速地搭建和部署应用程序。Rails 的“约定优于配置”(Convention Over Configuration)理念降低了开发过程中的复杂性,让开发者能更专注于业务逻辑。 在 Ruby ...

Global site tag (gtag.js) - Google Analytics