告别 ROR windows 部署的噩梦-在 windows 上面 使用 Apache 部署 Ruby On Rails
今天去赛博把给朋友做的网站部署一下,服务器是一台windows2003的服务器。本身没想到在windows2003上面配置 ROR 是一场噩梦,因为网上看到了很多的 IIS 和 ROR 文档。不做不知道,一做才知道那简直是噩梦。忙到下午5点多还是没有配置好,晚上回来冷静下来想了想,有些地方不对,换个思路去做也许可以很ok。
大体思路是安装一个apache监听到8080端口,然后利用apache转向到mongrel上就ok了。说说具体的步骤。
- 首先是从网上下载windows版本的ruby,安装,记得要装gem哦。
- 安装rails,mongrel,和mongrel_servicegem install rails
gem install win32-service
gem install mongrel
gem install mongrel_service - 准备 ROR 程序,我就已经ok的山大路程序
- 把 ROR 程序添加成windows服务
mongrel_rails service::install -N myapp -c c:\myapp -p 4000 -e production
你也可以使用mongrel_rails service::remove -N myapp 去删除他。
现在注册成服务你就可以在控制面板、管理工具、服务里面管理网站了,设置成自动启动就ok了。 - 安装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 - 在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的要删除。
- ProxyRequests Off
- <Proxy balancer://myCluster>
- BalancerMember http://localhost:4000
- BalancerMember http://localhost:4001
- </Proxy>
- <VirtualHost *:8080>
- ServerName www.cpu123.com
- DocumentRoot d:/sdroad/public
- ProxyPass /images !
- ProxyPass /stylesheets !
- ProxyPass /javascripts !
- ProxyPass / balancer://myCluster/
- ProxyPassReverse / balancer://myCluster/
- ProxyPreserveHost on
- </VirtualHost>
好了,都搞定了,有时间了去市里在配置一下。发现自己有时候很倔强,想完成的东西不弄成直接受不了。不弄出来不睡觉,弄出来了就要狂睡,嘿嘿,现在去睡觉啦。
posted on 2007-05-31 00:33 JesseZhao 阅读(6464) 评论(11) 编辑 收藏 举报