关于apache+mongrel部署的文章,网上已经有很多了。在这里主要说一下容易出错的地方。
1 下载One-Click Ruby Install,安装好后使用ruby -v和gem -v查看版本信息,如果能够显示证明安装正确。
2 安装rails。对于安装rails,我个人还是推荐使用本地安装,它不会受网络的影响,同时自己也好控制。
安装rails必须要安装的相关依赖有
引用
activesupport http://rubyforge.org/projects/activesupport
activerecord http://rubyforge.org/projects/activerecord
actionpack http://rubyforge.org/projects/actionpack
actionmailer http://rubyforge.org/projects/actionmailer
actionwebservice(简称aws) http://rubyforge.org/projects/aws
最后才是 rails
引用
rails http://rubyforge.org/projects/rails/
对于本地安装,最重要的是注意版本。对于版本识别,这里推荐网友介绍的两个方法
引用
一、下载Rails 1.2.3.gem,在D:\rails目录下。
在命令行下进入"D:\rails",运行 gem install rails-1.2.3.gem ,命令行会显示出错信息,仔细看该信息,你会发现
该信息中会提示在安装 rails之前必须安装 "activesupport -1.4.2",连安装模块的名称和具体版本都列出来了。
安装好"activesupport-1.4.2"之后,继续上一步骤,这次会提示安装"activerecord-1.15.3",其他模块的步骤都一样。
二、仔细看Rails 1.2.3版本的发布日期,是"2007-03-13"。因为这五个模块一般是和Rail同步发布的。你只需要在下载列表
中找到对应发布日期的模块下载即可。如果不是同一天,自然是找时间相隔最近的版本
当然要是在线安装 直接gem install rails -y就可以了
3 安装mongrel,我还是推荐本地安装
引用
gem install gem_plugin-0.2.3.gem
gem install cgi_multipart_eof_fix-2.5.0.gem
gem install win32-service-0.5.2-mswin32.gem
gem install mongrel-1.1.2-mswin32.gem
gem install mongrel_service-0.3.3-mswin32.gem
这个时候可以使用 monmongrel_rails start启动
如果在运行mongrel服务器时遇到如下信息
!!! Path to log file not valid: log/mongrel.log
mongrel::start reported an error. Use mongrel_rails mongrel::start -h to get help.
那么可以通过指定应用目录来解决(因为mongrel在创建log之前会先验证应用目录)
C:\>mongrel_rails start -c C:\zsb
4 把mongrel作为windows services启动
mongrel_rails service::install -N zsb -c C:\zsb -p 3000 -e production
mongrel_rails service::install -N zsb2 -c C:\zsb -p 3001 -e production
上面的步骤就把mongrel加入到windows服务中。这时打开控制面版 -> 管理工具 -> 服务,就可以发现增加了项名为zsb,zsb2的服务,就可以通过控制面版来管理服务了。如果要从服务中取消该项服务,那么:
mongrel_rails service::remove -N zsb
在命令行下启动和关闭该服务就是:
mongrel_rails service::start -N zsb
mongrel_rails service::stop -N zsb
5 配置Apache2.2
引用
从Apache网站下载Windows版本的Apache2.2,运行安装程序,就安装好了Apache2.2。
用编辑工具打开Apache2.2目录下面的conf/httpd.conf,需要取消如下模块的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
如果你希望对页面输出使用压缩,也需要取消如下模块的注释:
LoadModule deflate_module modules/mod_deflate.so
然后加入
ProxyRequests Off
<Proxy balancer://myCluster>
BalancerMember http://localhost:3000
BalancerMember http://localhost:3001
</Proxy>
<VirtualHost *:80>
ServerName zs.cumt.edu.cn.com
DocumentRoot d:/rubyproject/depot/public
ProxyPass /images balancer://myCluster/images
ProxyPass /stylesheets balancer://myCluster/stylesheets
ProxyPass /javascripts balancer://myCluster/javascripts
ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on
</VirtualHost>
这样一个apache+2mongrel的运行环境就配置好了。
注:很多资料来源于网络,在此表示感谢。
同步发布在
http://www.86516afw.com/blogPost/27.html