第 0 步:购买 VPS
推荐购买 DigitalOcean 的 VPS,价格很便宜,适合初学者
第 1 步:使用 Root 登录 VPS
假设你的VPS IP 地址为:
198.199.119.188
$ ssh [email protected]
输入 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