การติดตั้ง Cafe grader/กรุ
บทความนี้จะอธิบายการติดตั้ง Cafe grader ขั้นตอนการติดตั้งจะแบ่งออกเป็นสองส่วน คือส่วนเว็บ และส่วนตัวตรวจ อย่างไรก็ตาม ทั้งสองส่วนยังมีการใช้ซอฟต์แวร์หลายอย่างร่วมกัน โดยจะเรียกรวม ๆ ว่าเป็นซอฟต์แวร์ที่จำเป็น เราจะเน้นการติดตั้งบน Ubuntu/Debian เป็นหลัก
เอกสารนี้เขียนสำหรับการติดตั้งบน Rails 2.3.4 (ถ้ามีรุ่นใหม่กว่านี้จะทยอยปรับปรุงต่อไป)
ในการเขียนบางจุดอาจมีรายละเอียดมากไป สำหรับผู้เชี่ยวชาญสามารถอ่านข้ามไปได้
การติดตั้งซอฟต์แวร์ที่จำเป็น
เราจะติดตั้ง Ruby, Rails (เป็นเว็บเฟรมเวิร์คที่ใช้ในการพัฒนา cafe grader), และ Subversion ซึ่งเป็นระบบจัดการเวอร์ชันของซอฟต์แวร์ (ใช้ในการโหลดระบบ cafe grader)
ติดตั้งระบบฐานข้อมูล MySQL, ระบบจัดการเวอร์ชัน Subversion
ติดตั้ง MySQL โดยสั่ง
sudo apt-get install mysql-server mysql-client
ระหว่างติดตั้ง ระบบจะถาม password ของ root ของ mysql server ให้เลือกและจดไว้ (จะต้องใช้ต่อไปในการสร้าง user ของระบบฐานข้อมูล)
เราจะใช้ subversion ในการโหลดรุ่นล่าสุดของ Cafe grader มาติดตั้ง ดังนั้นสั่งติดตั้ง subversion ดังนี้
sudo apt-get install subversion
ติดตั้ง Ruby, ระบบจัดการแพกเกจ Ruby Gem, และ Rails
Cafe grader พัฒนาด้วยภาษา Ruby ดังนั้นเราจะต้องติดตั้ง Ruby พร้อมทั้งระบบต่าง ๆ ก่อน
เริ่มติดตั้ง ruby และระบบจัดการ document rdoc โดยสั่ง
sudo apt-get install ruby rdoc
จากนั้นให้ติดตั้ง Ruby gems ซึ่งเป็นระบบจัดการไลบรารีและซอฟต์แวร์ต่าง ๆ ของ Ruby แม้ว่าใน Ubuntu จะสามารถเรียกติดตั้งได้ด้วย apt-get แต่มักพบว่าการติดตั้งด้วยวิธีนี้มักพบปัญหา ดังนั้นเราจะติดตั้งโดยตรง ตามขั้นตอนต่อไปนี้
- ดาวน์โหลด Ruby gems จาก RubyForge
- จากนั้นให้ขยายไฟล์ใส่ในไดเร็กทอรีชั่วคราว แล้วสั่ง
sudo ruby setup.rb
เราจะได้ ruby gem ที่เรียกให้ทำงานได้โดยคำสั่ง gem1.8 อย่างไรก็ตามเพื่อความสะดวก เราทำให้เรียกด้วยคำสั่ง gem ได้ด้วย โดยสั่ง
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
(ไม่ต้องทำในขั้นตอนนี้ก็ได้ แต่ในลำดับต่อไปให้เรียก gem1.8 แทน gem)
เมื่อได้ Ruby และ Ruby gems แล้ว เราจะติดตั้ง software ต่าง ๆ ที่ต้องการ ต่อไปนี้
- Rails (เว็บเฟรมเวิร์ค), ติดตั้งโดยสั่ง
sudo gem install rails --no-rdoc --no-ri
- Rspec (ระบบทดสอบการทำงาน), ติดตั้งโดยสั่ง
sudo gem install rspec --no-rdoc --no-ri
- ไลบรารีของ ruby ในการติดต่อกับ mysql, ติดตั้งโดยสั่ง
sudo apt-get install libmysql-ruby
- ไลบรารีในการเชื่อมต่อแบบปลอดภัยของ ruby
sudo apt-get install libopenssl-ruby
การติดตั้งส่วนติดต่อทางเว็บ
เราจะเริ่มโดยการสร้าง user บน mysql และ database
สร้างฐานข้อมูลบน MySQL
เราจะสร้างผู้ใช้และฐานข้อมูลบน Mysql เข้าใช้ mysql โดยสั่ง
mysql -u root -p
และป้อนรหัสผ่านที่ได้กำหนดไว้ในขั้นแรก
เมื่อเข้ามาใน mysql แล้ว สั่งให้สร้าง user ในตัวอย่างนี้จะใช้ชื่อว่า cafe อย่าลืมเปลี่ยน mypassword ด้านล่างให้เป็นรหัสผ่านที่ต้องการ
create user 'cafe'@'localhost' identified by 'mypassword';
สร้างฐานข้อมูลชื่อ grader
create database grader;
ให้สิทธิผู้ใช้ cafe ในการทำทุกอย่างในฐานข้อมูล grader
grant all on grader.* to 'cafe'@'localhost';
เมื่อเรียบร้อยแล้วให้ออกจาก mysql โดยสั่ง quit
Check out cafe grader และปรับแต่ง
เราจะติดตั้งส่วนติดต่อทางเว็บที่ ~/grader/web ถ้าต้องการติดตั้งที่อื่นให้แก้ขั้นตอนต่อไปตามเหมาะสม
ก่อนอื่นสร้างไดเร็กทอรี ~/grader ก่อน
mkdir grader
จากนั้น check out cafe grader จาก google code
svn co http://cafe-grader.googlecode.com/svn/web/trunk grader/web
โปรแกรมส่วนติดต่อกับผู้ใช้ทางเว็บจะถูกดาวน์โหลดมาที่ ~/grader/web
เราจะเข้าไปปรับแก้แฟ้มต่าง ๆ โดยแฟ้มเหล่านี้อยู่ในไดเร็กทอรี ~/grader/web/config
- ให้คัดลอกแฟ้ม database.yml.SAMPLE เป็น database.yml แฟ้มดังกล่าวจะเก็บข้อมูลเกี่ยวกับการเชื่อมต่อกับฐานข้อมูล เราจะแก้ไข โดยใส่ชื่อฐานข้อมูล, ชื่อผู้ใช้, และรหัสผ่าน ให้ใส่ทั้งส่วน development และส่วน production ดังตัวอย่างด้านล่างนี้ (ส่วน production ให้ใส่ลักษณะเดียวกัน)
development: adapter: mysql database: grader username: cafe password: mypassword host: localhost
ส่วน development เราจะใช้เพื่อทดสอบว่าระบบทำงานได้ เมื่อใช้งานจริง เราจะใช้ในส่วน production
- ให้คัดลอกแฟ้ม environment.rb.SAMPLE เป็น environment.rb แฟ้มดังกล่าวจะเก็บการตั้งค่าต่าง ๆ ในเบื้องต้นนี้เราจะยังไม่แก้ไขอะไร อย่างไรก็ตาม หากต้องการ web interface ภาษาไทย ให้แก้ส่วน locales เป็น ภาษาไทยดังด้านล้าง
# Setting locales config.i18n.default_locale = 'th'
จากนั้นเราจะติดตั้งไลบรารีอื่น ๆ ของ ruby ที่ cafe grader ต้องการ โดยสั่ง (สั่งที่ไดเร็กทอรีที่ติดตั้งส่วน web ของ cafe grader --- ในตัวอย่างนี้คือ ~/grader/web)
sudo rake gems:install