今天去賽博把給朋友做的網站部署一下,伺服器是一台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>
好了,都搞定了,有時間了去市裡在配置一下。發現自己有時候很倔強,想完成的東西不弄成直接受不了。不弄出來不睡覺,弄出來了就要狂睡,嘿嘿,現在去睡覺啦。