如何在 Mac下快速部署 Nginx + Passenger + Rails · Ruby China

Python014

如何在 Mac下快速部署 Nginx + Passenger + Rails · Ruby China,第1张

安装Xcode 4.1,Xcode4.2以及更高的版本在 Lion 仍然存在一些兼容性问题,强烈建议使用XCode 4.1,下载地址:

安装RVM

$ bash <<(curl -s )

配置RVM自动加载,将下面这一行代码添加到~/.bash_profile中,然后退出iTerm并重新启动

[[ -s $HOME/.rvm/scripts/rvm ]] &&source $HOME/.rvm/scripts/rvm

安装 ruby-1.9.2-p290

$ rvm install 1.9.2

设置系统默认使用 ruby-1.9.2

$ rvm use 1.9.2 --default

步骤1 安装 Rails

安装Rails

$ gem install rails

Rails安装完成后,创建一个rails项目,假定你的项目叫做:awesome project

$ rails new awesome_project

启动Rails,并访问

$ cd awesome_project $ rails server

步骤2 安装 Passenger 和 Nginx

首先通过gem安装passenger

$ gem install passenger

因为Nginx不支持动态module载入,所以需要通过Passenger来自动下载,编译,安装由Passenger修改版的Nginx:

安装Passenger + Nginx

$ passenger-install-nginx-module

Yes: download, compile and install Nginx for me. (recommended) The easiest way to get started. A stock Nginx 1.0.10 with Passenger support, but with no other additional third party modules, will be installed for you to a directory of your choice.

No: I want to customize my Nginx installation. (for advanced users) Choose this if you want to compile Nginx with more third party modules besides Passenger, or if you need to pass additional options to Nginx's 'configure' script. This installer will 1) ask you for the location of the Nginx source code, 2) run the 'configure' script according to your instructions, and 3) run 'make install'.

Whichever you choose, if you already have an existing Nginx configuration file, then it will be preserved.

Enter your choice (1 or 2) or press Ctrl-C to abort: 这里建议选择1

Please specify a prefix directory [/opt/nginx]: /usr/local/nginx

当询问nginx的安装路径的时候,个人建议安装到/usr/local/nginx下

当安装完成后,会在console中提示如何配置Nginx

Passenger会自动帮你将下面两行添加到Nginx的配置文件中/usr/local/nginx/conf/nginx.conf(很人性化)

http { ... passenger_root /Users/Daniel/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.10passenger_ruby /Users/Daniel/.rvm/wrappers/ruby-1.9.2-p290/ruby... }

server { listen 80server_name www.yourhost.comroot /somewhere/public# <--- be sure to point to 'public'! passenger_enabled on}

请不要忘记将nginx命令行程序连接到/usr/local/sbin

$ sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/

步骤3 配置Nginx + Passenger + Rails

修改hosts文件,给你的项目一个本地域名, 比如awesome_project.local

$ sudo vim /etc/hosts

127.0.0.1 awesome_project.local

测试hosts

$ ping awesome_project.local

PING awesome_project.local (127.0.0.1): 56 data bytes

64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.054 ms

继续配置Nginx, 这里我给出一个最小可运行的Nginx配置文件

$ vim /usr/local/nginx/conf/nginx.conf

nginx.conf

worker_processes 1

events {

worker_connections 1024

}

http {

passenger_root /Users/Daniel/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.10

passenger_ruby /Users/Daniel/.rvm/wrappers/ruby-1.9.2-p290/ruby

include mime.types

default_type application/octet-stream

sendfile on

keepalive_timeout 65

server {

listen 80

server_name awesome_project.local

root /Users/Daniel/awesome_project/public

passenger_enabled on

rails_env development

}

}

测试Nginx的配置文件语法是否正确

$ sudo nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

启动Nginx

$ sudo nginx

如何在修改Nginx的配置文件后,让Nginx载入新配置

$ sudo nginx -s reload

如何停止Nginx

$ sudo nginx -s stop

如何在不停Nginx的情况下,重新启动Passenger

$ cd path/to/your/awesome/project

$ touch tmp/restart.txt

好了,这个时候你可以打开浏览器,访问你的awesome_project网站

建议您先免费试用15天,不满意无需付款。会打字就会建网站,操作方便。有免费的网站设计说明和操作技巧。

210元建网站,可先免费试用15天。包括:国际顶级域名(60元)、速成网站普及型(500M,150元)、正规备案服务等。具有基本网站功能:商品展示&发布管理、酷炫图文工具、文章管理、留言本、流量统计、网站SEO等。

460元建网站,可先免费试用15天。包括:国际顶级域名(60元)、速成网站全能型(空间2G,400元)、正规备案服务等。功能全面:网上商城、文章管理、会员注册及管理、论坛管理、在线购物与支付、留言本、流量统计、网站SEO推广、支持WAP手机网站等。

可咨询我们在线客服,他会一步一步教您操作。我们已为15000多家用户提供了6年多优秀服务,更专业,更稳定。联系方式请点击我的用户名——用户资料。

rvm nginx passenger rails配置服务器安装passenger1gem install passenger安装ngnix1passenger-install-nginx-module已经安装好nginx 和 passenger ,默认配置和命令1#配置2/opt/nginx/conf/nginx.conf3命令4/opt/nginx/sbin/nginx修改默认文件1http {2 passenger_root /Library/Ruby/Gems/1.8/gems/passenger-4.0.53 passenger_ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby4 rack_env gabriellocal准备rails项目 ,查看 Phusion配置server ,配置模板1server {2 listen 803 passenger_ruby /Users/soft/.rvm/wrappers/ruby-1.9.3-p429@rails3/ruby4 server_name localhost5 root /Users/soft/Sites/rails-unity/public # <--- be sure to point to 'public'!6 passenger_enabled on7}需要配置以下passenger_ruby 使用正确的ruby 版本server_name 拥有的域名listen 监听的端口root rails 程序的public 目录后几项没问题,第一项通过以下得到1#切换到正确的rails版本2rvm use 1.9.3@rails33#安装passenger , 否则没有下面这个命令4gem install passenger5passenger-config --ruby-command6#在输出结果中找出 passenger_ruby ,重启nginx , 完成