【Ruby on Rails 起步(二)】Windows下搭建RubyonRails 3.0.4 + Mongrel 1.2.0 pre + Apache2.2.17服务器

不知道为什么,感觉Rails自带的WEBrick有点慢,于是决定利用已有的Apache搭建一个Mongrel的。

系统是Windows 7,昨天下载的Ruby1.9.2(但是除了主文件夹名是Ruby192,内部文件夹都是1.9.1嘛,这是为神马呢?),gem 1.5.2,Rails 3.0.4,Mongrel 1.2.0 pre2,Apache2.2.17。折腾了一早上,走了各种弯路。特此Mark一下。

 

从哪里说起呢?我一上来就先Google找别人的搭建经验。主要借鉴了 http://jan.varwig.org/archive/rails-3-and-mongrel 还有 http://robbin.javaeye.com/blog/43290?page=2#comments 。后者是旧版本的Mongrel和Apache设置,前者是关于Rails3 Beta的Mongrel设置。

 

=======================================================================

1、首先RoR肯定要装好,gem install rails --include-dependencies

2、然后是mongrel

gem install mongrel --pre  (因为稳定版的Mongrel1.1.5不能支持Rails3.0.4,但是毕竟是pre版,将来应该会改成稳定版)

gem install mongrel_service

 

3、接下来就是建立自己的项目目录,假设已经建立好了,然后打开Gemfile,其他修改略去,参考varwig的修改,在文件中添加一行

gem 'mongrel'

但是我实际操作中这样还是无法用rails server来开启服务器。实际中我添加的是

gem 'mongrel', '1.2.0.pre2'

但是这样还是不行,在 Ruby192目录下找/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib下的mongrel.rb文件,删除最后两行,具体理由见http://jan.varwig.org/archive/rails-3-and-mongrel

 

4、这样设置,其实已经可以了。进入项目目录,运行

rails server

就会自动开启Mongrel服务器

 

=> Booting Mongrel

=> Rails 3.0.4 application starting in development on http://0.0.0.0:3000

=> Call with -d to detach

=> Ctrl-C to shutdown server

但是缺点是每次都要自己运行这个命令。

 

 

 

5、如果还不够,还想要由Apache默认的80端口访问,那么还要开启Apache的代理。参考http://robbin.javaeye.com/blog/43290?page=1#comments

在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
在末尾加上
=======================================
ProxyRequests Off    
<Proxy balancer://myCluster>
  BalancerMember http://localhost:3000
  BalancerMember http://localhost:3001
</Proxy>
<VirtualHost *:80>
  ServerName localhost
  DocumentRoot e:/photos
  ProxyPass /images !
  ProxyPass /stylesheets !
  ProxyPass /javascripts !
  ProxyPass / balancer://myCluster/
  ProxyPassReverse / balancer://myCluster/
  ProxyPreserveHost on
</VirtualHost>
=========================================
(之前怎么代码块不能正常显示)

具体理由,在上面那个blog的末尾和讨论中。主要是为了均衡负载。

 

 

 

============================================================

至此,已经可以启动Mongrel服务器了,还有注册成系统服务,按说应该可以始终可以访问,但是我

设置成为服务并开启服务后,离开cmd下的rails server命令,看样子好像不能运行。就是没有rails s

的话直接访问localhost:3000不能,而且有个小问题,CPU占用率呈现周期性的100%,进程名是ruby

大概是因为1.2.0 pre还是不稳定版本,因此必须用rails server来运行。

============================================================

 

6、如果要自动一点,那要再多设置一点。运行

mongrel_rails service::install -N [servicename] -c [project dir] -p [port] -e [edition]

servicename是要创建的系统服务项目

project dir是存放项目的目录

port是开放的端口,惯例是设成3000

edition是项目的版本,development或者test或者production

 

我输入了

mongrel_rails service::install -N photo -c E:/photos -p 3000 -e development

这样之后,在任务管理器的服务标签里找到photo服务,开启服务,然后在浏览器里输入 localhost:3000就可以显示Welcome aboard的欢迎信息了,以后可以通过这个端口直接访问。

 

===========================================================

于是就搭建好了RoR的环境,谢谢以上两位的帮助还有许多高手的评论点拨。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值