Ruby on Rails, Day 3 - Setting Rails on Ubuntu

คราวที่แล้วผมมีปัญหากับ MySQL บน Mac OS X และยังไม่สามารถแก้ไขได้ เลยคิดว่าใช้เครื่อง Ubuntu Dapper ที่ใช้อยู่แทนดีกว่า มาจดวิธีลงเก็บไว้คนอื่นจะได้ประโยชน์ด้วย

ตามปกติแล้ว Rails จะมากับเว็บเซิร์ฟเวอร์ในตัวชื่อ WEBrick (เหมือนกับ Mono ที่มี XSP) เอาไว้ให้ลองรันง่ายๆ ไม่ต้องคอนฟิกอะไร แต่ในการใช้งานจริงที่มีโหลดมาก ก็ควรเปลี่ยนไปใช้ Apache แทน (รวมถึง MySQL ด้วย) วันนี้เอาแค่ลง Rails อย่างเดียวก่อน

เครื่องที่ใช้เป็น Ubuntu Dapper Flight 3 แต่น่าจะใช้ได้กับ Ubuntu Breezy (5.10) ด้วย ตอนลงแพกเกจจริงๆ ผมใช้ Synaptic แต่ในนี้ขอใช้วิธี apt จะได้เขียนง่ายๆ

ขั้นตอน

  1. อย่างแรกที่สุดต้องเปิดใช้ Universe ก่อน เพราะแพกเกจ Rails อยู่ใน Universe ให้เปิด terminal ขึ้นมา แก้ไขไฟล์
    /etc/apt/sources.list

    หาบรรทัดที่เขียนว่า

    # deb http://us.archive.ubuntu.com/ubuntu/ dapper universe
    # deb-src http://us.archive.ubuntu.com/ubuntu/ dapper universe

    ให้ลบเครื่องหมาย # หน้าบรรทัดออก

  2. เซฟไฟล์ แล้วสั่ง
    sudo apt-get update

  3. รอมันอัพเดตข้อมูลแพกเกจซักแป๊บ พอมันบอกว่าเสร็จแล้ว เราก็ทำการติดตั้ง Rails
    sudo apt-get install rails

  4. แค่นี้เราก็จะได้ Ruby และ Ruby on Rails มาพร้อมใช้งาน เราก็ทดลอง Rails ของเรา เริ่มจากการสร้างโครงการใหม่มาซักโครงการก่อน ผมสร้างโครงการชื่อ testapp ในไดเรคทอรีว่างๆ แถวไหนก็ได้
    ~$ mkdir rails
    ~$ cd rails
    ~/rails$ rails testapp

    รอจนมันเจ็นโครงการเสร็จ

  5. สั่งให้ WEBrick เริ่มทำงาน
    ~/rails/testapp$ ruby script/server

    แล้วเปิดเบราว์เซอร์ไปที่ http://0.0.0.0:3000 ตอนนี้น่าจะเห็นหน้าต้อนรับของ Rails ตามรูป

Ruby Start Page

  1. หลังจากนั้นเราก็ลองสร้างโปรแกรมตัวอย่างขึ้นมา ผมใช้ตัวอย่างตาม Rolling with Ruby on Rails
    ~/rails/testapp$ ruby script/generate controller mytest
    ~/rails/testapp$ vi app/controllers/mytest_controller.rb

  2. ใส่ข้อความเหล่านี้ลงไป
    class MytestController < ApplicationController
      def index
        render_text "Hello"
      end
    end

  3. ลองเข้าไปที่ http://0.0.0.0:3000/mytest ก็ควรจะเห็นโปรแกรม Ruby on Rails ตัวแรกของเราแล้ว

Ruby example

ตอนหน้ามาเซ็ต Apache กันต่อ

Submitted byWiennaton Sun, 02/26/2006 - 15:01

เค้าให้ใช้ lighthttpd ไม่ใช่เหรอครับ

apache + mod_ruby มันไม่workหรือไงนี่แหละ

Submitted bypphetraon Sun, 02/26/2006 - 23:22

ผมใช้ apache + fcgi อยู่
mod_ruby ยังไม่เคยลอง แต่เห็นที่เขา blog ไว้ก็น่าจะใช้ได้นะครับ

http://blog.shugo.net/articles/category/mod_ruby
http://wiki.rubyonrails.org/rails/pages/mod_ruby

ส่วนความเร็วไม่รู้เหมือนกัน