การติดตั้ง Cafe grader

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

ข่าวการอัพเดท

  • ขณะนี้ทีมงานกำลังปรับปรุง cafe grader ให้ทำงานบน Rails 3 เพื่อทำให้ระบบสามารถติดตั้งได้สะดวกขึ้น
  • เนื่องจาก gitorious มีปัญหาบ่อย ทางทีมงานจึงได้ย้ายโค้ดของ cafe grader ไว้ที่ github แล้ว

การติดตั้ง Cafe Grader ด้วย scripts สำหรับ debian/ubuntu

จะเพิ่มรายละเอียดแบบละเอียดกว่านี้ต่อไป

สคริปต์ติดตั้งอัตโนมัติสำหรับระบบที่เป็น debian/ubuntu อยู่ที่ github

สามารถเรียกใช้ได้โดย cd ไปที่ home directory ของ user ที่ sudo ได้ จากนั้นสั่ง

wget https://raw.github.com/jittat/cafe-grader-judge-scripts/master/installer/install.sh

จะโหลดสคริปต์มาชื่อ install.sh

ก่อนจะเรียกใช้สคริปต์ จะต้องนำ key ของ rvm มาติดตั้งก่อน โดยสั่ง

gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

จากนั้นเรียกสคริปต์โดยสั่ง

source install.sh

สคริปต์จะดาวน์โหลดซอฟต์แวร์ละติดตั้งทุกอย่าง สคริปต์จะถามให้เราสร้าง database บน MySQL แล้วป้อน database name, username ของ MySQL และ password ของ user ดังกล่าว และจะเซ็ตทุกอย่างให้โดยอัตโนมัติ

ระบบจะติดตั้ง cafe grader และ Ruby 1.9.2 ภายใต้ระบบ rvm

เมื่อสคริปต์ทำงานเสร็จ สามารถทดลองใช้ได้โดยสั่ง

cd cafe_grader/web
rvm use 1.9.2
rails s

จะสามารถเข้าใช้ได้ที่พอร์ต 3000 ของเครื่อง บัญชีผู้ใช้เริ่มต้นคือ root รหัสผ่านคือ ioionrails

การติดตั้ง web interface บน apache ด้วย passenger

ในการใช้งานจริง เราจะติดตั้งระบบ cafe grader ให้ทำงานผ่านเว็บเซิร์ฟเวอร์ apache เราจะติดตั้งโดยใช้ Phusion Passenger ซึ่งเป็นโมดูลของ apache สำหรับให้บริการ Rails application

ก่อนจะเริ่มติดตั้ง เราเรียก rvm เพื่อใช้งาน Ruby รุ่น 1.9.2 ที่เราติดตั้งไป

rvm use 1.9.2

ในการทำงานจริง เราจะต้องคอมไฟล์แฟ้ม javascript และ css ให้เป็นแฟ้มเดียวกันก่อน โดยสั่งคำสั่งด้านล่างในไดเร็กทอรี cafe_grader/web

rake assets:precompile

จากนั้นติดตั้ง gem passenger

gem install passenger

เมื่อเสร็จแล้ว เราจะคอมไพล์โมดูลของ passenger และติดตั้ง เราจะเรียกคำสั่งด้านล่าง (ไม่ต้อง sudo) (มีอธิบายต่อ)

passenger-install-apache2-module

เมื่อเรียกแล้ว อาจจะต้องมีการติดตั้ง gem / package เพิ่มเติม ก็ให้ดำเนินการตามนั้น จนกระทั่งมีคำว่า "The Apache 2 module was successfully installed." ขึ้นมา โปรแกรมจะระบุคำสั่งให้เรานำไปใช้เพื่อเรียกโมดูลของ passenger ใน apache โดยจะมีคำสั่งเช่น LoadModule, PassengerRoot และ PassengerRuby เป็นต้น

ให้นำคำสั่งดังกล่าวไปเพิ่มในแฟ้ม /etc/apache2/httpd.conf

จากนั้นสามารถเลือกติดตั้ง cafe grader ได้สองแบบ กล่าวคือ ติดตั้งให้เป็น url ย่อยของเครื่อง หรือ ติดตั้งโดยให้เป็น application หลักของเครื่อง หรือของ virtual host ใด ๆ ขั้นตอนทั้งสองแบบระบุดังด้านล่าง

เมื่อทำเสร็จแล้ว เรียก

sudo /etc/init.d/apache2 restart

เพื่อโหลด apache ให้ทำงาน

ติดตั้งเป็น url ย่อย

ให้ดำเนินการดังนี้

  • เชื่อมโยงเว็บกับ Apache2
cd /var/www
sudo ln -s ~/cafe_grader/web/public grader
  • แก้ไข config ของ apache ให้ใช้ rails กับ /grader โดยเพิ่มบรรทัดด้านล่าง เข้าไปในส่วน VirtualHost ที่ต้องการ
 RailsBaseURI /grader

เช่น ถ้าต้องการติดตั้งในระบบกลางของเซิร์ฟเวอร์เลย ก็แก้ไขไฟล์ /etc/apache2/sites-available/000-default โดยเพิ่มบรรทัดด้านล่างลงไประหว่างส่วน <VirtualHost *> กับ </VirtualHost>

ถ้าติดตั้งแล้ว เราจะเรียกเว็บได้โดยสั่ง http://ชื่อเครื่องของคุณ/grader

ถ้าจะติดตั้งเป็น application หลัก

สมมติว่าเราติดตั้ง cafe_grader ไว้ที่ผู้ใช้ cafe_grader ไดเร็กทอรีหลักของระบบเว็บจะอยู่ที่ /home/cafe_grader/cafe_grader/web

เราจะเข้าไปแก้ไขไฟล์ /etc/apache2/sites-available/000-default หรือไฟล์ virtual host อื่น ๆ โดยย้าย DocumentRoot ให้ชี้ไปที่ ไดเร็กทอรี public ในไดเร็กทอรีของระบบเว็บ และเปิดให้เข้าใช้ไดเร็กทอรีดังกล่าวได้ ดังตัวอย่างด้านล่าง (อย่าลืมแก้ส่วน /home/cafe_grader ให้ตรงตามชื่อไดเร็กทอรีที่ติดตั้ง)

<VirtualHost *:80>
   ServerName www.yourhost.com
   # !!! Be sure to point DocumentRoot to 'public'!
   DocumentRoot /home/cafe_grader/cafe_grader/web/public    
   <Directory /home/cafe_grader/cafe_grader/web/public>
      # This relaxes Apache security settings.
      AllowOverride all
      # MultiViews must be turned off.
      Options -MultiViews
   </Directory>
</VirtualHost>

การติดตั้ง nodejs บน debian

  • ติดตั้ง environment ที่จำเป็นสำหรับ node.js
sudo apt-get install libssl-dev apache2-utils g++ curl 
  • ติดตั้ง git-core สำหรับดาวน์โหลด node.js ผ่าน git
sudo apt-get install git-core
  • ดาวน์โหลด node.js ผ่าน git
git clone git://github.com/ry/node.git
  • จากนั้นจะได้โฟล์เดอร์พร้อมทั้งไฟล์สำหรับติดตั้ง ให้ใช้คำสั่งดังนี้
cd node
./configure
make
sudo make install

การติดตั้งแบบ manual

ขณะนี้ไม่แนะนำการติดตั้งด้วยวิธีดังกล่าว สำหรับวิธีการติดตั้งแบบ manual เดิม ซึ่งไม่สามารถใช้ได้แล้ว สามารถดูได้ที่การติดตั้ง Cafe grader/กรุ