ทดสอบกับ 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>