ติดตั้ง KnowledgeVolution บน ubuntu

ทดสอบกับ ubuntu 10.04
ต้นฉบับจาก http://knowledgevolution.org

ติดตั้ง apache ด้วยคำสั่ง sudo apt-get install apache2 apache2-doc

ติดตั้ง memcache ด้วยคำสั่ง sudo apt-get install memcached

ติดตั้งด้วยคำสั่ง sudo apt-get install mysql-server
หากได้หน้าต่าง Configuring mysql-server-5.0  มีข้อความแจ้งให้ใส่รหัสผ่าน
ในตอนนี้ยังไม่ต้องใส่อะไร ให้เลื่อนไปเลือก <ok>
ระบบจะทำการติดตั้งต่อไปจนเสร็จ
สั่งให้ mysql server ทำงานด้วยคำสั่ง  sudo /etc/init.d/mysql start

เพื่อความปลอดภัยให้รีบแก้ไขรหัสผ่านของ root ของ mysql
สมมติว่าต้องการให้รหัสของผู้ใช้ root มีรหัสผ่านว่า mysqldroot
ตัวอย่างนี้ใช้คำสั่งว่า mysqladmin -uroot password mysqldroot

ติดตั้งเครื่องมือเพิ่มเติมด้วยคำสั่งดังนี้
sudo apt-get install ruby ruby1.8 ruby1.8-dev libopenssl-ruby1.8 rubygems1.8 build-essential imagemagick libmagick9-dev libmysql-ruby1.8

wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz -P /tmp
sudo tar -zxvf /tmp/rubygems-1.3.7.tgz -C /usr/src
cd /usr/src/rubygems-1.3.7
sudo ruby setup.rb
sudo gem install rubygems-update
sudo update_rubygems
sudo gem update --system
sudo gem install fastthread system_timer rmagick formtastic rake
sudo gem install passenger --version 2.2.15
sudo gem install i18n --version 0.2.1
sudo apt-get install apache2-prefork-dev libapr1-dev libaprutil1-dev libcurl4-openssl-dev
sudo passenger-install-apache2-module

ติดตั้ง KV ด้วยคำสั่งดังนี้
sudo apt-get install git-core
sudo mkdir -p /var/usablelabs/knowledgevolution-read-only
sudo chown -Rv root:$(whoami) /var/usablelabs/
sudo chown -R $(whoami):$(whoami) /var/usablelabs/knowledgevolution-read-only/
git clone http://github.com/thawatchai/knowledgevolution.git /var/usablelabs/knowledgevolution-read-only
cp /var/usablelabs/knowledgevolution-read-only/config/database.yml-example  /var/usablelabs/knowledgevolution-read-only/config/database.yml
sudo chown -R $(whoami):$(whoami) /var/usablelabs/knowledgevolution-read-only/

แล้วจัดการ database ต่อดังนี้
mysql -u root -pmysqldroot -e "CREATE DATABASE kv_production DEFAULT CHARACTER SET 'utf8' DEFAULT COLLATE  'utf8_general_ci';"
mysql -u root -pmysqldroot -e "GRANT ALL PRIVILEGES ON kv_production.* TO 'kv'@'localhost' IDENTIFIED BY '1234567';"
cd /var/usablelabs/knowledgevolution-read-only
sudo apt-get install libxslt-dev libxml2-dev
sudo gem install bundler
sudo bundle install
sudo gem install nokogiri
rake RAILS_ENV=production db:reset

จัดการ apache ทำดังนี้
สร้างแฟ้ม  /etc/apache2/sites-available/kv  มีข้อความดังนี้
<virtualhost>
   ServerName www.yourhost.com
   AddDefaultCharset UTF-8
   DocumentRoot /var/usablelabs/knowledgevolution-read-only/public
   <directory knowledgevolution-read-only="" public="" usablelabs="" var="">
           Options FollowSymLinks
           AllowOverride None
           Order allow,deny
           Allow from All
   </directory>
   RailsBaseURI /
</virtualhost>

สร้างแฟ้ม /etc/apache2/httpd.conf  มีข้อความดังนี้
NameVirtualHost *:8000

# Include apache_mod_passenger
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/bin/ruby1.8
RailsAutoDetect off
#PassengerMaxPoolSize 45
PassengerMaxPoolSize 30
PassengerPoolIdleTime 900
#PassengerLogLevel 2
#RailsSpawnMethod conservative
SetEnv LANG th_TH

แก้ไขแฟ้ม /etc/apache2/ports.conf  เพิ่มบรรทัดข้อความต่อท้ายว่า
Listen 8000

แล้วทำงานต่อด้วยคำสั่ง
sudo a2ensite kv
sudo /etc/init.d/apache2 restart

ทดสอบผลงานได้ที่เวบ http://localhost:8000</ok>