【ROR】基础0-在vagrant中配置ror环境 - 丁一鸣
学习资料:
Ubuntu 12.04 上使用 Nginx Passenger 部署 Ruby on Rails
rvm实用指南
passenger文档
清单
Ubnuntu 14.04
rvm
ruby
gem
bundler
passenger
nginx
使用vagrant
进入vagrant
vargrant ssh
更新
apt-get
sudo apt-get update
安装
GPG
和curl
sudo apt-get install -y curl gnupg build-essential
安装rvm
RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换。
https://rvm.io/
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3curl -sSL https://get.rvm.io | sudo bash -s stablesudo usermod -a -G rvm `whoami`
安装完成后重新登录vagrant,使rvm生效
exitvagrant ssh
使用rvm
安装ruby
查看可安装列表
rvm list known
安装ruby
rvm install ruby
查看ruby版本
ruby -v
指定版本安装
rvm install ruby-X.X.X
rvm --default use ruby-X.X.X
gem
安装了ruby便自带了rubygem,即ruby的包管理工具,rails也是一个gem包
查看gem版本
gem -v
更新gem
sudo gem update --system
切换gem资源到国内(https://ruby.taobao.org)
gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
查看gem源
gem sources -l
安装rails
gem install railsrails -v
安装bundler
bundler是个管理应用gem包依赖的工具
gem install bundler --no-rdoc --no-ri
安装nodejs
rails中asset pipeline需要js运行环境
sudo apt-get install -y nodejs &&sudo ln -sf /usr/bin/nodejs /usr/local/bin/nodenode -v
安装passenger+nginx
Passenger 是一个 app server,支持基于 Rack 框架的 Ruby app(包括 Rails)。
Passenger 的特点是需要作为模块编译到 Nginx 中,优点是配置简单,不需要自己写启动脚本。
导入passenger密钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
安装apt插件支持https传输
sudo apt-get install -y apt-transport-https ca-certificates
添加apt源
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main > /etc/apt/sources.list.d/passenger.list'
更新
apt-get
sudo apt-get update
安装passenger+nginx
sudo apt-get install -y nginx-extras passenger
配置nginx,
给/etc/nginx/nginx.conf
权限
cd /etc/nginxsudo chmod 777 nginx.conf
编辑/etc/nginx/nginx.conf
找到下面两行去除#
vim nginx.conf# passenger_root /some-filename/locations.ini;# passenger_ruby /usr/bin/passenger_free_ruby;
这会打开passenger支持,并指定使用之前用rvm安装的ruby版本
如果
nginx.conf
里没有passenger_root
,则添加
passenger-config --root
添加 passenger-root
到/etc/nginx/nginx.conf
...http { passenger_root /some-filename/locations.ini; ...}
重启nginx
sudo service nginx restart
检查安装
sudo passenger-config validate-installsudo passenger-memory-stats
更新
sudo apt-get updatesudo apt-get upgrade