rails部署
就是记几个容易忘的地方
vim config/secrets.yml
## 产品环境秘钥
vim config/environments/production.rb
## 修改配置
config.assets.compile = false
## 改成
config.assets.compile = true
## 运行
RAILS_ENV=production bin/rails assets:precompile
## 产品环境启动
rails s -e production
apache代理配置
## 启用模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
## 虚拟主机配置
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName localhost.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
半年之后来更新这篇文章。在bash上运行
Update 2018.03.06
新建用户
adduser rails
su rails
安转rvm && 配置。以2.5.0为例
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm install 2.5.0
rvm default 2.5.0
vim ~/.bashrc
在.bashrc 末尾添加
export PATH="$PATH:$HOME/.rvm/bin"
source ~/.rvm/scripts/rvm
# 以下环境变量和rails 程序配置有关
# 设置产品环境
export RAILS_ENV=production
# postgreSQL 密码
export POSTGRESQL_DATABASE_PASSWORD=mFpbHNndW4Kawegewrrheswyrtueyrt
# 产品环境密钥
export SECRET_KEY_BASE=30a9359867c893f709d23a637awrhertewthtre9814533ac6f8c1e20fe0dbe1251055c70d00dd5accf487b6702443d7a0afde075f7fc8b85d1710668936
安装gem && 启动
非纯API应用要编译JavaScript
其实这个参数我也不太理解。如果是默认值会有找不到编译玩的js的情况。改了这个就好了
vim config/environments/production.rb
config.assets.compile = true
编译JavaScript
rails assets:precompile
bundle install
rails server
产品环境应该已服务类型启动
rails server -d
# 关闭服务
kill `cat tmp/pids/server.pid`