发表时间:2009-03-08
最后修改:2009-03-10
操作系统 :Red Hat Enterprise Linux 5
(一)首先我们先安装ruby
http://www.ruby-lang.org/zh_CN/news/2008/08/12/ruby-1-8-7-p72-and-1-8-6-p287-released/
我安装的是 ruby-1.8.6-p287.tar.gz 版本
[root@dingrui ]# tar xzvf ruby-1.8.6-p287.tar.gz
[root@dingrui ]# cd ruby-1.8.6-p287
[root@dingrui ]# ./configure -prefix=/usr/local/ruby
[root@dingrui ruby-1.8.6-p287 ]# make
[root@dingrui ruby-1.8.6-p287 ]# make install
安装好后,修改操作系统的PATH路径 在/etc/profile文件中加入
PATH=/usr/local/ruby/bin:$PATH
export PATH
测试: (要从新启动一次系统)
[root@dingrui ]# ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]
ok 成功!
(二)安装ruby on rails
在安装rails 之前 我们先要安装 rubygems
http://rubyforge.org/projects/rubygems/
下载最新的 rubygems-1.3.1
[root@dingrui ]# tar xzvf rubygems-1.3.1.tgz
[root@dingrui ]# cd rubygems-1.3.1
[root@dingrui rubygems-1.3.1]# ruby setup.rb
现在可以安装rails了
[root@dingrui ]# gem install rails
测试:
[root@dingrui ]# rails -v
Rails 2.2.2
(三)安装 mongrel mongerl_cluster
[root@dingrui ]# gem install mongrel
[root@dingrui ]# gem install mongrel_cluster
(四) 安装apache
http://httpd.apache.org/
我下载的是 最新的 apache 2.2.11
(注意:2..2.2版本的apache有缺陷 ,会使得proxy代码在某些情形下执行失败 要取保你的apache高过这个版本 )
[root@dingrui ]# tar zxvf httpd-2.2.11.tar.gz
[root@dingrui ]# cd httpd-2.2.11
[root@dingrui httpd-2.2.11 ]# ./configure -prefix=/usr/local/httpd-2.2.11 --enable-proxy --enable-proxy-balancer --enable-proxy-http --enable-rewrite --enable-cache --enable-headers --enable-ssl
(注意:--enable前面两个横杠中间没有空格)
[root@dingrui httpd-2.2.11 ]# make
[root@dingrui httpd-2.2.11 ]# make install
测试 :
[root@dingrui httpd-2.2.11 ]# apachectl-k start
来浏览器里输入 127.0.0.1 应该能够看见 apache的测试页面
(五)安装mysql
首先去sun的网站上下载适合你操作系统的mysql数据库安装包
(呵呵 mysql2008年2月已经被SUN收购了)
我下的是rpm包 安装很方便 这里就不啰嗦了!
现在我们给ruby安装mysql驱动
[root@dingrui ]#gem install mysql
这里要注意:如果这一步报错 是因为你的系统还需要安装一下两个软件:
mysql-devel
per-dbi
我mysql 安装的是MYSQL5.0.77 去
http://rpm.pbone.net/index.php3/stat/4/idpl/12049328/com/MySQL-devel-5.0.77-0.i386.rpm.html
下载了 mysql-devel-5.0.77-0.i386.rpm
per-DBI-1.40-1.i386.rpm 也可以在上面的网站找到
安装好这两个
gem install mysql -- --with-mysql-include=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql
这样安装驱动就OK了!(注意 要根据自己安装MYSQL的路径)
(六)配置 应用
1/ 我们先作一个简单的rails 测试应用
[root@dingrui ]#rails -d mysql xadazhe
[root@dingrui ]# cd xadazhe
[root@dingrui xadazhe]# mongrel_rails start
现在访问 http://127.0.0.1:3000/ 因该能看到rails的测试页面
说明你安装的mongrel正在运行,现在还需要证明rails也正常工作。
CTRL+C先停掉 mongrel 接着 :
[root@dingrui xadazhe]# script/generate controller admin
编辑 app/controllers/admin_controller.rb 文件 加入以下内容:
def index
render : text => "test"
end
再次启动 mongrel 访问
http://127.0.0.1:3000/admin
2/ 下面我们要配置前面生成的xadazhe的应用 让他运行在 8000号端口开始的3个mongrel实例上。
注意:一定要在rails项目文件夹下运行这个命令 否则会报错
$mongrel_rails cluster::configure -e production -p 8000 -N 3 -c /root/xadazhe -a 127.0.0.1
这个命令会创建一个mongrel_cluster.yml配置文件 在 xadazhe/config目录下
参数参考:
-e 配置RAILS应用的运行环境
-p mongrel用于坚挺链接的端口号
-N 运行几个mongrel实例
-c 指定一个YAML格式的配置文件
现在启动这个集群
(运行也必须在你rails项目目录下)
[root@dingrui xadazhe]# mongrel_rails cluster::start
starting port 8000
starting port 8001
starting port 8002
OK然后关闭 mongrel_rails cluster::stop
3/ 配置 apache
首先我们在/etc/hosts 文件里加入
127.0.0.1 www.xxx.com
找到 /etc/httpd/conf.d 文件夹 我们创建的rails.conf文件
在里面输入:
NameVirtualHost *:80
#设定mongrel集群
<Proxy balancer://xadazhe_cluster>
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001
BalancerMember http://127.0.0.1:8002
</Proxy>
#设定RAILS应用的虚拟主机信息
<VirtualHost *:80>
ServerAdmin admin@xadazhe.com
ServerName www.xxx.com
ServerAlias www.xxx.com
DocumentRoot /root/xadazhe/public
<Directory '/root/xadazhe/public'>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
#将一个服务器映射到本地服务器的URL空间
ProxyPass / balancer://xadazhe_cluster/
#调整由反向代理服务器发送的HTTP应答头中的URL
ProxyPassReverse / balancer://xadazhe_cluster/
ProxyRequests Off
#设定路径从写规则,从写引擎开关 打开
RewriteEngine On
#跟路径从新写INDEX.HTML静态文件
RewriteRule ^/$ /index.html [QSA]
#将找不到的静态问价请求发给mongrel集群处理
RewriteCond % {DOCUMENT_ROOT}/% {request_filename} ! -f
RewriteRule ^/(.*)$ balancer://xadazhe_cluster% {REQUEST_URI} [P,QSA,L]
</VirtualHost>
好了基本的配置完成了 我们来测试一下
现启动 mongrel_cluster
[root@dingrui xadazhe]# mongrel_rails cluster::start
在启动apache
[root@dingrui xadazhe]# apachectl -k start
我们在浏览器里输入 http://www.xxx.com/ 应该就能出来RAILS的测试页面
在输入 http://www.xxx.com/admin 应该能出现 TEXT的 页面。