在 Mac 10.8 下使用 Passenger & Rvm 的 Rails 应用部署

17 Aug 2012

本文在 MacOSX 10.8 MountainLion 下测试通过

安装 Homebrew

嘿, 先安装 Homebrew 不需要我再介绍了把?

ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)

参考资料: Homebrew Install

安装 RVM

RVM 是 ruby 的环境隔离工具

curl -L https://get.rvm.io | bash -s stable --ruby

参考资料: Installing RVM

用 Gem 安装 Passenger

Passenger 是在 apache 或 nginx 上面部署 Rack 应用的程序

gem install passenger

参考资料: Passenger with nginx on Mac OS X (2nd edition)

这里还需要创建专门给 Passenger 用的, 包含 RVM 完整路径信息的专用 Ruby => passenger_ruby

rvm wrapper passenger

用 Homebrew 安装 nginx

Nginx 是一个轻量快速流行的网页服务器

brew install nginx --with-passenger

检查一下 Passenger 模块

nginx -V 2>&1 | grep passenger

给 Nginx 配置 Passenger

nginx.conf:

worker_processes 1;
user crhan _www;

events {
  worker_connections 1024;
}

http {
  include mime.types;
  default_type application/octet-stream;
  sendfile on;
  keepalive_timeout 65;

  passenger_root /Users/crhan/.rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.15;
  passenger_ruby /Users/crhan/.rvm/bin/passenger_ruby;

  server {
    listen 80;                   
    server_name redmine.local;   
    root /Users/crhan/src/redmine/public;
    passenger_enabled on;
    rack_env production;         
  }
}
  • 配置中的 passenger_root 替换成 passenger-config --root 的值
  • 配置中的 passenger_ruby 替换成 which passenger_ruby 的值

参考资料: A Guide to a Nginx, Passenger and RVM Server

测试 Nginx 并启动

sudo nginx -t # 测试 nginx 配置
sudo nginx #启动
comments powered by Disqus