Isriya Paireepairit / mk / markpeak
A Thai tech geek. Co-founder of Blognone and SIU. Blogging on almost everything.
คราวที่แล้ว ผมติดตั้ง Ruby on Rails บน Ubuntu Dapper โดยใช้ WEBrick ซึ่งเป็นเว็บเซิร์ฟเวอร์ขนาดเล็กที่มีในแพกเกจ RoR อยู่แล้ว คราวนี้เรามาติดตั้งระบบสมบูรณ์ที่สามารถใช้ทำงานจริงได้ โดยเปลี่ยน WEBrick เป็น Apache แทน
ปรากฎว่าเจอบทความที่มีคนเขียนไว้แล้ว ใช้อันนี้อ้างอิงละกัน จะได้ไม่ต้องเขียนใหม่ Ruby, Rails, Apache2, and Ubuntu Breezy (5.10) ลองบน Dapper ก็ประสบความสำเร็จดี
ติดตั้งเซิร์ฟเวอร์
เนื่องจาก Ubuntu ไม่ได้เป็นลินุกซ์สำหรับเซิร์ฟเวอร์ ดังนั้นเราจึงต้องลงทุกอย่างเอง แต่ด้วยความสามารถของ apt-get ก็ไม่ต้องใช้หัวอะไรเลย แพกเกจที่สำคัญมีดังนี้
apt-get จะจัดการกับ dependencies ให้อัตโนมัติ ชื่อแพกเกจที่ต้องใช้ทั้งหมด ดูตามลิงก์ที่ว่าครับ
การติดตั้งควรมีพื้นฐานการดูแลเซิร์ฟเวอร์มาบ้าง ถ้ามีปัญหาลองอ่านตามลิงก์พวกนี้ เผื่อจะเข้ากรณีกัน
phpMyAdmin
ส่วนที่ผมแนะนำเพิ่มเติม คือติดตั้ง phpMyAdmin เวลาสร้างตารางจะได้สะดวกๆ การติดตั้งก็ง่ายมากเช่นเดียวกัน
sudo apt-get install phpmyadmin
โดยมันจะไปอยู่ที่ /var/www/phpmyadmin
แต่ phpmyadmin ดูจะมีปัญหากับ MySQL บน Dapper นิดหน่อย ลองหาสาเหตุดูก็พบว่าไดเรคทอรีของ mysqld ไม่กำหนดสิทธิ์ให้เข้าได้ ต้องแก้ไขนิดหน่อย
sudo chmod +x /var/run/mysqld
และไม่ควรปล่อย password ของ MySQL ว่างไว้เฉยๆ แบบผม (ค่าดีฟอลต์เป็น root/ว่าง) เพื่อความปลอดภัยถ้าจะเอาไปรันจริง
โปรเจคต์ Recipe
ในตัวอย่างอันบนสุด เค้าลองแค่รัน Hello ง่ายๆ ให้ดูแบบคราวที่แล้ว เรามาลองสร้างโปรแกรมจริงๆ ที่ต่อกับ MySQL ผมใช้ตัวอย่าง Recipe ของ Rolling with Ruby on Rails เช่นเดิม ส่วนตัว RoR ใช้ testapp ของคราวก่อน
ขั้นตอนมีดังนี้
testapp$ vi config/database.yml
แก้ไขชื่อฐานข้อมูล testapp_ ต่างๆ ให้เป็น testapp เฉยๆ ให้หมด
testapp $ ruby script/generator model Recipe
testapp $ ruby script/generator controller Recipe
class RecipeController < ApplicationController
scaffold :recipe
end
จะเห็นว่ามีโค้ดส่วน scaffold บรรทัดเดียวที่เราเขียนเพิ่ม
แพกเกจเพิ่มเติมที่แนะนำให้ลง (สำหรับ Ubuntu ที่ยังไม่ได้ลงอะไรเพิ่ม) คือ sshd สำหรับการล็อกอินเข้ามาแก้โค้ดจากเครื่องอื่น
มาถึงขั้นนี้เราก็พร้อมจะพัฒนาโปรแกรมด้วย Rails อย่างเป็นเรื่องเป็นราวแล้ว
Comments
revolution
27 February, 2006 - 17:52
Permalink
ปัจจุบันใช้ debian+apache2+mod_ruby+mysql อยู่ใช้งานได้ดีครับผม
อ่านใน mailing list เขาบอกว่า fcgi เร็วกว่า mod_ruby ไม่รู้จริงเท็จประการใด แต่ส่วนตัวชอบ eruby มาเลยเหมือนเอา ruby ใส่ลง html เหมือน php เลย
Kerberos
28 February, 2006 - 16:38
Permalink
ทำไมไม่มีใครทำสำหรับภาษา perl บ้างหว่า
PoR "perl on rails" ฮึๆ
คนเขียน ruby ก็ได้แรงบันดาลใจของ syntax บางส่วนมาจาก perl หนิ (ถึงได้มี predefined var. ตรึม)
สงสัยต้องลองทำดูซะแล้ว สนุกแน่ๆ
Sirn
1 March, 2006 - 02:41
Permalink
FastCGI
FastCGI เร็วกว่า mod_ruby (เยอะ)มากๆ ครับ
ฝั่งผมทำงานกับ Lighttpd + fcgi + RoR + MySQL อยู่ มีวิธี Install อยู่ที่ [url=http://hivelogic.com/articles/2005/12/01/ruby_rails_lighttpd_mysql_tiger]Hivelogic[/url]
แต่ Rails มันยอดจริงๆ ครับ :P ติดใจ ไม่ได้กลับไปแตะ PHP มาหลายเดือนแล้ว...
wd
1 March, 2006 - 17:24
Permalink
รบกวนช่วยดูที่นี่ให้หน่อยซิครับ
http://discuss.joelonsoftware.com/default.asp?joel.3.309321.3
อยากขอความเห็นเฉย ๆ น่ะครับ (จริง ๆ แล้ว คือขี้เกียจศึกษา ruby อีกน่ะครับ )
mk
2 March, 2006 - 00:18
Permalink
อันนั้นก็อ่านซักพักนึงแล้วเหมือนกัน คิดว่าความรู้และประสบการณ์ที่มีกับ RoR ยังไม่สามารถบอกได้ว่ามีข้อดีข้อด้อยยังไง ข้้อจำกัดอะไรครับ
Add new comment