在網路上看了很多有關於 Ruby on Rails 的文章,決定寫一篇比較完整的手動安裝文,將 ROR 安裝在 Windows 上並採用效能較高的 Mongrel 伺服器。對於新手而言,還可參考另一個選擇 Instant Rails (整合 ROR - Apache - MySQL - Windows),並不一定要看這篇文章。
本文架構
ROR - Mongrel - MySQL - Windows
準備工具
Ruby One-Click Installer
‧MySQL
MySQL 請準備 zip 壓縮版本 ...
示範平台/WindowsXP
一、安裝 Ruby
RubyGems 是安裝工具,當然要勾選 Enable 囉,安裝都靠它了;SciTE 則是附帶的 Ruby 編緝器,沒理由不要吧。
測試 Ruby
開始 > 執行 > 輸入 cmd > 確定(←此 DOS 視窗一直開著吧,整篇文章都會用到)
在 DOS 視窗輸入 > ruby -v
安裝成功會顯示 > ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
二、安裝 Rails
在 DOS 視窗輸入 > gem install rails --include-dependencies
會自動幫你下載並安裝好 Rails
測試 Rails
在 DOS 視窗輸入 > rails -v
安裝成功會顯示 > Rails 2.0.2
三、安裝 Mongrel
ROR 雖已內建 Webrick 標準伺服器,但是它在開啟速度、執行速度及便利性都輸給 Mongrel,所以我們要用 Mongrel 取代 Webrick 作為 ROR Web Server
在 DOS 視窗輸入 > gem install mongrel --include-dependencies
選擇適合你系統的 Mongrel,這裡要選後面有寫
安裝 Mongrel Service
在 DOS 視窗輸入 > gem install mongrel_service --include-dependencies
它會讓你選擇 Mongrel Service 和 Win32 Service,一樣選擇最高版本的
四、建立網站資料夾(建立專案)
請先前往你要安裝的位置(例:要安裝在 C:\ 之下,在 DOS 視窗輸入 > cd c:\ )
在 DOS 視窗輸入 > rails -d mysql www(它會在該目錄下建立網站資料夾 www 並搭配 MySQL 資料庫,若直接在 DOS 視窗輸入 > rails www 代表搭配預設資料庫 SQLite3)
五、將 Mongrel Service 安裝為 Windows 服務
在 DOS 視窗輸入 >
mongrel_rails service::install -N www -c c:\www -e development
(P.S. c:\www 需改為你的位置,-e 代表開發環境,有 test, development, production 三種,代表專案開發的三個階段 - 測試、開發、產品,這裡先以 development 為示範)
設定 Mongrel Service 為自動啟動
我的電腦按右鍵 > 管理
服務及應用程式 > 服務 > www 點兩下
啟用類型: 自動.. 服務狀態: 已啟動 才是正常,如果不是請設定成這樣。經此設定後,Mongrel Service 服務將會在你每次開機後自行啟動。
如果要移除 Mongrel Service,請作以下動作
電腦管理 > 服務及應用程式 > 服務 > www 點兩下
啟用類型: 自動.. 服務狀態: 已停止,設定成這樣。
在 DOS 視窗輸入 > mongrel_rails service::remove -N www
六、測試頁面
接著你就可以在瀏覽器網址列輸入 http://localhost:3000/ 看到 ROR 的預設頁面。
七、安裝 MySQL
將 MySQL 檔案解壓縮到 C:\mysql (解壓縮後此目錄下應是數個檔案夾)
依下列程序安裝 MySQL 服務
開始 > 執行 > 輸入 C:\mysql\bin\mysqld -install
八、繼續之前,先進入不可不知的 MySQL 講座
一般在 WindowsNT/2000/XP,MySQL需要安裝成為一個系統服務。
你可以在以下程序看到 MySQL 服務。
我的電腦上按右鍵選管理
服務及應用程式 > 服務
在 MySQL 上點兩下(如果沒有找到代表你安裝不成功)
啟用類型: 自動.. 服務狀態: 已啟動 才是正常,如果不是請設定成這樣。經過此設定後,MySQL 服務將會在你每次開機後自行啟動。
如果要移除 MySQL 服務,請作以下動作
先停止 MySQL 服務,我的電腦上按右鍵選管理
服務及應用程式 > 服務
在 MySQL 上點兩下
啟用類型: 自動.. 服務狀態: 已停止,設定成這樣。
開始 > 執行
輸入 C:\mysql\bin\mysqld -remove 按確定
需注意,若沒有這個動作自行刪除 MySQL 檔案,這裡的 MySQL 服務就會變成無法移除了!
九、MySQL,新增資料庫
在 MySQL 新增一個供 ROR 使用的資料庫,進入 MySQL 指令模式
在 DOS 視窗輸入 > MySQL路徑\bin\mysql -u 帳號 -p 密碼 (例 mysql -u root -p)
mysql> create database www_development;
mysql>exit
(www_development 是 ROR development 預設資料庫名,如果要更改的話,database.yml 也要一起改)
十、讓 ROR 連上 MySQL
在 DOS 視窗輸入 > gem install mysql
選擇最高的 mysql
設定 MySQL 連線資料
開啟資料庫連線檔案 database.yml:你的路徑\www\config\database.yml
設定連線資料,只需設定 development 的部份即可
database.yml
development:
adapter: mysql
encoding: utf8
database: www_development (可改成你的資料庫名稱)
username: root (改成你的資料庫使用者名稱)
password: (改成你的資料庫密碼)
host: localhost
十一、測試 MySQL
打開剛看過的測試頁 http://localhost:3000/ ,並且按中間 About your application's enviroment 如果設定有誤這裡會看到紅色的方框,看到黃色方框表示沒問題。
關於 MySQL 管理工具
第一件事你會發現沒有 phpMyAdmin 可用,推薦 MySQL GUI Tools 5.0 ,它是功能、安全性皆優於 phpMyAdmin 的 MySQL 管理工具。(付費的企業版還另提供監視及分析等功能)
十二、修改路徑檔 routes.rb
開啟路徑檔 routes.rb:你的路徑\www\config\routes.rb
在最後一行 end 的上方新增一行語法如下
map.root :controller => ''
這樣可解決升級 Rails 2.0.2 之後瀏覽頁面出現 Routing Error 的 Bug
十三、簡單的 Helloworld
進入 Ruby on Rails 的世界
為了避免看不懂,首先你必須瞭解 Ruby on Rails 的 MVC 架構 (Model-View-Controller),解釋如下:Model (資料模型)、View(程式顯示)、Controller(程式邏輯,俗稱控制器)
ROR 以這些基本元素架構網站,沒有連結資料庫(Model),至少也要建立 Controller 和 View。
建立 Controller
接下來要開始 Helloworld 的範例了,請先前往你的網站位置,我的例子要先到 C:\www
在 DOS 視窗輸入 > ruby script/generate controller helloworld index
(P.S. helloworld 是 Controller 名稱,index 是指定的動作[Action],送出指令後 Ruby on rails 會幫你把相關檔案自動準備好,並存入 app 裡的相閞資料夾)
以上語法會自動創建下列檔案:
exists app/controllers/
exists app/helpers/
create app/views/helloworld
exists test/functional/
create app/controllers/helloworld_controller.rb
create test/functional/helloworld_controller_test.rb
create app/helpers/helloworld_helper.rb
create app/views/helloworld/index.rhtml
以下會在 Controller 建立變數 greeting,並透過 View 顯示出來。
修改 Controller
www\app\controllers\helloworld_controller.rb
class HelloworldController < ApplicationController
def index
@greeting = "Hello World"
end
end
修改 View
www\app\views\helloworld\index.html.erb
<%= @greeting %>
顯示結果
http://localhost:3000/helloworld
Hello World
以上你學會了在 Windows 平台手動安裝 Ruby on Rails、Mongrel 伺服器、連結 MySQL,並透過 Ruby 語言執行第一支程式,還活著的話,我恭喜你了。