Wednesday, November 19, 2008

Rails部署

内容大部分来自在windows上面使用 Apache 部署Ruby On Rails,做了部分改动

首先是从网上下载windows版本的ruby,安装,记得要装gem哦。
安装rails,mongrel,和mongrel_servicegem install rails
gem install win32-service
gem install mongrel
gem install mongrel_service
准备 ROR 程序

命令行定位到程序目录
创建production数据库
rake db:migrate RAILS_ENV=production
试运行
ruby script/server

把 ROR 程序添加成windows服务
mongrel_rails service::install -N myapp -c c:\myapp -p 4000 -e production --prefix \myapp
你也可以使用mongrel_rails service::remove -N myapp 去删除他
启动该服务


配置apache的httpd.conf
安装apache,修改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/myapp
ProxyPass /myapp/ http://127.0.0.1:4000/myapp/
ProxyPassReverse /myapp http://127.0.0.1:4000/

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

BalancerMember http://localhost:4000
BalancerMember http://localhost:4001



ServerName www.cpu123.com
DocumentRoot d:/sdroad/public
ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts !
ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on

No comments: