一直想动手部署一个生产环境在服务器上。推了好几次,趁着今天有空,就想学习一下。根据下面的链接来进行操作的。
Ubuntu 14.04 上使用 Nginx Passenger 部署 Ruby on Rails
有几个地方卡住了,所以要记录一下,免得以后忘记。如下(最好每次操作都加上sudo)
- 问题:装好ubuntu系统后,结果发现通过SSH不能连接服务器。解决:确定服务器能连上网,虚拟机的话,请用桥接的模式,同时指定一个ip给服务器。再sudo apt-get install openssh-server。
- 问题:指南中用的是ubuntu12.04。可能与自己的服务器版本不一致解决: 安装passenger的时候,要注意系统版本。用正确的源来安装。
- 问题:
sudo echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main" > /etc/apt/sources.list.d/passenger.list
提示没有权限解决:sudo chown -R deploy /etc/apt/sources.list.d - 问题:指南中用的是PostgreSQL数据库,可能与自己使用的数据库不一致
解决:要安装好对应的数据库的。或者直接使用PostgreSQL数据库 - 问题:如果给PostgreSQL添加一个用户?
解决:sudo su postgres -> createuser -drSP deploy -> createdb -O deploy deploy - 问题:怎么查看nginx的log
解决: sudo tail -f /var/log/nginx/error.log - 问题:访问的时候,提示“Incomplete response received from application”
解决:
Go to your rails app directory
cd /path/rails-app
Generate secret key base
rake secret RAILS_ENV=production
Set environment variable
SECRET_KEY_BASE=<the-secret-key-base>
Restart the Rails app
touch /path/rails-app/tmp/restart.txt
- 问题: 访问的时候,报错:We're sorry, but something went wrong.
解决: 增加#encoding:utf-8 ,我是在initailizers的其中一个文件上加的。