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

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

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics