告别 ROR windows 部署的噩梦-在 windows 上面 使用 Apache 部署 Ruby On Rails

作者: JesseZhao
发布时间:2015-06-24 11:27:59

今天去赛博把给朋友做的网站部署一下,服务器是一台Windows2003的服务器。本身没想到在windows2003上面配置 ROR 是一场噩梦,因为网上看到了很多的 IIS 和 ROR 文档。不做不知道,一做才知道那简直是噩梦。忙到下午5点多还是没有配置好,晚上回来冷静下来想了想,有些地方不对,换个思路去做也许可以很ok。

大体思路是安装一个Apache监听到8080端口,然后利用apache转向到mongrel上就ok了。说说具体的步骤。

  1. 首先是从网上下载windows版本的ruby,安装,记得要装gem哦。
  2. 安装rails,mongrel,和mongrel_servicegem install rails
    gem install win32-service
    gem install mongrel
    gem install mongrel_service
  3. 准备 ROR 程序,我就已经ok的山大路程序
  4. 把 ROR 程序添加成windows服务
    mongrel_rails service::install -N myapp -c c:\myapp -p 4000 -e production
    你也可以使用mongrel_rails service::remove -N myapp 去删除他。
    现在注册成服务你就可以在控制面板、管理工具、服务里面管理网站了,设置成自动启动就ok了。
  5. 安装apache,选择使用端口8080的那个选项就ok了,防止和iis冲突了。不过下面要修改httpd.conf文件,取消一下三行的注释。
    LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so
  6. 在httpd.conf最后加上proxy pass的设置
    ProxyPass /myapp http://127.0.0.1:4000/
    ProxyPassReverse /myapp http://127.0.0.1:4000/

这样就可以使用http://127.0.0.1:8080/myapp来访问了。不过有个问题,就是你的图片和css之类的都会因为路径问题而无法显示。解决办法在javaeye里面看到一个,下面给出代码,还是在httpd.conf的最后添加几行代码,当然上面的proxy的要删除。

  1. ProxyRequests Off       
  2. <Proxy balancer://myCluster>
  3.   BalancerMember http://localhost:4000       
  4.   BalancerMember http://localhost:4001       
  5. </Proxy>
  6. <VirtualHost *:8080>
  7.   ServerName www.cpu123.com       
  8.   DocumentRoot d:/sdroad/public       
  9.   ProxyPass /images !       
  10.   ProxyPass /stylesheets !       
  11.   ProxyPass /javascripts !       
  12.   ProxyPass / balancer://myCluster/       
  13.   ProxyPassReverse / balancer://myCluster/       
  14.   ProxyPreserveHost on       
  15. </VirtualHost>

好了,都搞定了,有时间了去市里在配置一下。发现自己有时候很倔强,想完成的东西不弄成直接受不了。不弄出来不睡觉,弄出来了就要狂睡,嘿嘿,现在去睡觉啦。

来源:http://www.cnblogs.com/jessezhao/archive/2007/05/31/765766.h

推荐: