如何用nginx+passenger部署Rails

Python010

如何用nginx+passenger部署Rails,第1张

具体步骤

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启动起来。在浏览器就可以访问了

如何在CentOS系统通过源码安装ruby

本文主要讲解如何在CentOS系统通过源码安装ruby,CentOS系统中首先下载ruby 、执行Ruby代码 、再配置环境变量使在全局可用。

在使用CentOS系统的时候,我们可能会遇到安装ruby 的问题,下面,我们就来针对这个问题,提出一个解决方案。

CentOS系统中首先下载ruby

Ruby代码

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p368.tar.gz

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p368.tar.gz

Ruby代码

tar xzvf ruby-1.8.6-p368.tar.gz

tar xzvf ruby-1.8.6-p368.tar.gz

然后进到ruby-1.8.6-p368目录

CentOS系统执行Ruby代码

./config -prefix=/usr/local/ruby

./config -prefix=/usr/local/ruby

开发编译安装

Ruby代码

make &&make install

make &&make install

CentOS系统中再配置环境变量使在全局可用:

在/etc/profile后加入

Ruby代码

export PATH=/usr/local/ruby/bin:$PATH

export PATH=/usr/local/ruby/bin:$PATH

保存后,su -

ruby -v 看能否正常使用。

CentOS系统下面安装rubygem

Ruby代码

wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz

wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz

解压后,进入目录,执行 ruby setup.rb 进行安装。

安装过后更新 gem

Ruby代码

gem update --system

gem update

这样,我们就在CentOS系统安装ruby环境完成了。

我有一些ruby的项目代码,你可以参考,没地方放。。。

http://cid-b0c7e71ec8fabb4f.office.live.com/self.aspx/.Public/collective^_intelligence.zip