如何在 Mac下快速部署 Nginx + Passenger + Rails · Ruby China
具体步骤
1. ruby安装
下载源代码包到本地Linux主机,然后解压缩,进入该目录,进行配置,编译和安装,依次执行(提示没有权限时加sudo):
tar xzvf ruby-1.8.7.tar.gz
cd ruby-1.8.7
sudo ./configure –prefix=/usr/local/ruby
sudo make && sudo make install
环境配置
安装好以后,执行ruby –v。显示的仍然是ruby 1.8.5。执行env发现环境变量/usr/bin优先了。而ruby正好在/usr/bin下。所以刚编译安装的目录/usr/local/ruby/bin应该加在系统PATH前面。
修改操作系统PATH路径,加入/usr/local/ruby/bin:
export PATH=/usr/local/ruby/bin:$PATH
执行完以后再执行ruby –v。显示了ruby 1.8.7
3. gem和rails安装
下载gem源码。然后依次执行:
tar xzvf rubygems-1.5.2.tgz
cd rubygems-1.5.2/
ruby setup.rb
安装rails就简单了。sudo gem install rails
4. nginx安装
先安装passenger:
sudo gem install passenger
安装好后执行:
sudo passenger-install-nginx-module
选择3:Learn how to deploy your application,会提示是否自动下载nginx。选择1:是
安装nginx时会提示安装目录:输入/opt/nginx/
至此,rails环境搭建完成
5. 获取代码
执行:svn co http:// ######
将代码checkout到rails应用目录
6. 配置
复制config/database.yml.example为config/database.yml。修改数据库配置。然后配置nginx。编辑/opt/nginx/conf/nginx.conf。添加:
http{
...
passenger_root /usr/local/passenger;
passenger_ruby /usr/local/bin/ruby;
server {
listen 80;
server_name beta.twork.taobao.net;
root /Users/freetest/public; #这里根据不同的用户,目录不同
passenger_enabled on;
rails_env production;
}
...
}
现在启动nginx还会报nobody无法取得某些目录的写入权限。因为nginx默认为nobody启动的。可以有两个方法:
1、 将应用和应用目录下所有文件夹和文件都置为权限777。执行 chmod 777 –R 应用目录
2、 将nginx的启动用户设置为具有操作应用目录的用户。如root(不建议)或者用户本身。具体做法是更改/opt/nginx/conf/nginx.conf第一行。user 用户名 组名
测试下环境:sudo /opt/nginx/sbin/nginx
启动好nginx后自动会把passenger启动起来。在浏览器就可以访问了
以下代码区域,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括 $ 符号)
步骤0 - 安装系统需要的包
Mac 请安装 Xcode 开发工具,它将帮你安装好 Unix 环境需要的开发包
Ubuntu 安装,开发包
$ sudo apt-get install wget vim build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev libxslt-dev autoconf automake libtool imagemagick libpcre3-dev
步骤1 - 安装 RVM
RVM 是干什么的这里就不解释了,后面你将会慢慢搞明白。
$ curl -L get.rvm.io | bash -s stable
等待一段时间后就可以成功安装好 RVM。
$ source ~/.bash_profile
测试是否安装正确
$ rvm -v
rvm 1.9.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]
步骤2 - 用 RVM 安装 Ruby 环境
$ rvm pkg install readline
$ rvm install 1.9.2 --with-readline-dir=$rvm_path/usr
或者可以安装 1.8.7 版本,也可以是 1.9.3,只要将后面的版本号跟换一下就可以了
同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。
步骤3 - 设置 Ruby 版本
RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本
$ rvm 1.9.2 --default
同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本
这个时候你可以测试是否正确
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
$ gem -v
1.8.6
$ gem source -r http://rubygems.org/
$ gem source -a http://ruby.taobao.org
步骤4 - 安装 Rails 环境
上面 3 步过后,Ruby 环境就安装好了,接下来安装 Rails
$ gem install bundler rails
然后测试安装是否正确
$ bundle -v
Bundler version 1.0
$ rails -v
Rails 3.2.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.10; passenger_ruby /Users/Daniel/.rvm/wrappers/ruby-1.9.2-p290/ruby; ... }
server { listen 80; server_name www.yourhost.com; root /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网站了
陈没菊力久: 目的:把mac电脑模拟成linux服务器,用于再win下学习命令,部署项目. Mac Terminal是自带SSH的,可以用whereis来看看 1.打开mac终端输入:whereis ssh 2.打开mac偏好设置,-->远程登陆,设置可以远程登陆的用户. 3.输入:ssh locathost ,提示输入密码. 4.远程电脑中windows 使用xshells连接mac(输入mac的ip,输入用户名和密码) 由于mac和linux的命令很相似,可以用来模拟linux命令部署项目相关操作,以及了解windows连接linux的流程.
巩留县18726035499: Mac机能安装Linux吗??? - ?
陈没菊力久: 完全可以,下面是安装步骤 1首先您需要下载一份Ubuntu桌面版安装镜像 . 务必选择64位的桌面版,虽然该镜像并不是为Mac提供的.该镜像在BIOS和EFI模式下都能启动,而Mac的镜像却只能在BIOS启动.Mac是专门设计成这样的,但是我...
巩留县18726035499: 怎么在mac 系统上使用Python?怎么安装Anaconda - ?
陈没菊力久: 在mac上搭建python环境:mac系统其实自带了一个python的执行执行环境,用来运行python还行,但是开发可能就不够了,因此我们需要重新安装python.这里有两种方案安装:1.homebrewbrew install python这个方案比较简单,如果出错...
巩留县18726035499: 如何Mac 远程连接ubuntu服务器桌面?我Mac自带vnc,请问我需要在ubuntu上面配置什 - ?
陈没菊力久: 第一步:开启vncserver服务;并记下x端口号(此处假设为2.0);第二步:设置系统语言export LANG; 设置显示端口:export DISPLAY=Ubuntu's IP:2.0;第三步:xhost +,使系统可通过其他终端访问;
巩留县18726035499: 如何在普通PC上安装MAC OS X LION??
陈没菊力久: 我是用虚拟机安装成功.直接装的话,需要专门弄一个硬盘分区,比较麻烦..以你的配置,完全可以玩转一个虚拟机,而不用担心硬盘分区弄坏...基本的是这样的..1.下载VM8,用的话的可以不用看教程,没用过的话网上有安装教程2....
巩留县18726035499: 如何在mac下搭建C/C++,Java的编译环境 - ?
陈没菊力久: 步骤如下: 1. Mac OS X 本身已经安装好 jdk,所以搭建 Java Eclipse环境很简单,只需要下载适合系统的 Eclipse即可,首先查看系统是几位的(点击 Mac 屏幕左上角的苹果 Logo,选择“关于本机”,在弹出的方形窗口里点击“更多信息…”...
巩留县18726035499: 如何在Mac下安装Win10 - ?
陈没菊力久: Mac上装Win10的方法:在Mac上安装Windows,基本上可以通过两种方式来实现:虚拟机及双系统.方法一:Mac虚拟机安装Win10系统方法首先下载ISO文件,虚拟机的选择包括VirtualBox、VMware等,这里以VirtualBox为例进行说明....
巩留县18726035499: 如何在Mac上配置/使用Github - ?
陈没菊力久: 以前一直听说过Github,但是自己一直不会用.最近不是太忙,于是想捣鼓捣鼓Github,没想到用了将近3个小时,才在Mac上配置成功.首先简单介绍一下Git和Github 集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS ...
巩留县18726035499: 怎么在mac版的eclipse中配置python开发环境 - ?
陈没菊力久: 1、首先下载MAC版的64位Eclipse,然后解压缩.2、下载Python.MAC自带的是的python版本比较老,所以去下个新版本,下载后安装,dmg的python 默认安装目录是:/Library/Frameworks/Python.framework/Versions/3、下载安装pydev插...
巩留县18726035499: 如何在mac osx下启用mysql(转载) - ?
陈没菊力久: 随着网络日益发展还有os x用户的增多,有可能会需要在自己的x系统中运行mysql+php环境,比如架设网站或者测试之类.简单步骤如下: 1、下载MySQL 5.x 发行版,解压并安装映像中的两个安装包文件. a. mysql-5.x-osx10.6_x86_64.pkg -...