การติดตั้ง KV ใน Windows XP

หมอปัณ

ผมกะว่า จะติดตั้ง KV บน XP ใช้เล็กๆในกลุ่มงานเวชศาสตร์ฟื้นฟูก่อน ถ้า work ดี เป็นตัวอย่างได้ดีแล้ว จึงจะขยายไปใช้ บน Linux สำหรับระดับ รพ. (ราชวิถี) ตอนนี้มีปัญหา 2 ข้อเรียนปรึกษาครับ

1. ผมติดตั้งโดยใช้ Apache web server , MySQL , RubyOnRail สามารถรัน Rail application จาก public ได้แล้ว (ตามคำแนะนำของคุณ Lord Vader) แต่พอผมลองเปลี่ยนมาใช้ KV พบว่า KV ทำการ route ไป home page ด้วย controller => 'home', action 'index' โดยเรียกใช้โปรแกรมที่ http://localhost/home/ ลองรันแล้ว ไม่สำเร็จ แต่คิดว่า ขั้นตอนที่ผิดน่าจะเป็นจากที่ยังไม่สามารถ migrate SQL data ไปยัง MySQL ได้ ผมยังใช้ rubyw migrate *.rb จากโฟลเดอร์ db/migrate ไม่เป็นครับ ช่วยแนะนำด้วย ผมติดตั้ง KV โดยใช้ Subversion โหลดมาไว้ที่ d:\kv-raja\kv\current\ แล้ว config Apache ให้มอง Virtual Directory มาที่ d:\kv-raja\kv\current\public ครับ

2. อีกอย่าง เวลารันเพจของ rail application บางทีมันจะรันนานมากจนกิน disk space จนหมด ไม่ทราบว่าเกิดอะไรขึ้น (ทั้งการรันดู Info และรัน generate app จากหน้า homepage ของ Railapp)

 

คำตอบ

ขอตอบเป็นข้อดังนี้นะครับ

1. ต้องใช้คำสั่ง rake เพื่อการ migrate ครับ (rubyw rake migrate) ขอให้ลองดู rake ก่อนนะครับ แล้วคืบหน้าอย่างไรรบกวนแจ้งด้วยนะครับ

2. แม้ผู้พัฒนา Ruby on Rails จะบอกว่า RoR ทำงานได้ใน Windows เช่นกัน แต่เท่าที่ผมทดลองพบว่า RoR ไม่ค่อย stable ในการทำงานบน Windows เท่าไหร่นักครับ

ผมขอแนะนำให้ใช้ VMWare Server (free edition) เพื่อใช้ Linux บน virtual machine แล้วใช้งาน KV มาจากใน virtual machine น่าจะได้ระบบที่ stable มากกว่าครับ นอกจากนี้ยังขยายไปใช้ server จริงในอนาคตได้ง่ายกว่าด้วยครับ 

หมอปัณ

VMWare เป็นทางออกทางหนึ่งที่ดีครับ แต่ติดตรงที่ต้องเพิ่ม RAM ครับ จาก 256 เป็น 512 MB ไม่งั้นอืดทั้งระบบ ตอนนี้คงอยากลองติดตั้งแบบ XP ดิบๆดูก่อนนะครับ

ดร. ธวัชชัย ปิยะวัฒน์

รบกวนคุณหมอทดลองดูนะครับ ถ้าอย่างไรจะได้เผยแพร่การติดตั้งและใช้งานจริง KV บน Windows  เพราะทางเราไม่ได้มีโอกาสทำในจุดนี้ครับ

หากคุณหมออยากให้ทางเราเพิ่มเติมแก้ไขโปรแกรมในส่วนไหนเพื่อให้ทำงานบน Windows ได้ดีขึ้นก็แจ้งมาได้เลยนะครับ 

หมอปัณ
ผมติดตั้ง schemes สำหรับ kv_production ลงใน MySQL เรียบร้อยแล้ว โดยรัน script SQL ด้วย phpMyAdmin จาก db/production_structure.sql โดยตรง ก็ได้ตารางครบถ้วนดี ปัญหาตอนนี้คือ ผมลองทดสอบ RoR แล้ว ยังเป็นปัญหาเดิม คือ จะ hang ขณะเปิดเพจ และกินเนื้อที่ฮาร์ดดิสก์จนฟ้องว่า Low disk space ขนาดว่าเนื้อที่ที่เหลือเป็น GB ก็ยังหมดเลยครับ
หมอปัณ

ปัญหากินเนื้อที่หมดทั้ง harddisk เจอต้นตอแล้ว คือ Apache web server เขียน error log file จนเต็ม ของผมใช้ไปมากถึง 7 GB แสดงว่ายังติดตั้ง RoR บน Apache ไม่สำเร็จครับ อันนี้คงทิ้งไว้ก่อน เพราะขนาดบน RoR web site ก็ยังแนะนำไม่สำเร็จเลย แต่แนะนำให้ติดตั้งอีกตัวคือ Mongrel ผมก็เลยขอพักไว้ก่อนครับ

ผมลองรัน ruby script/server เพื่อเรียก default web server ของ RoR ที่ชื่อ WEBrick ได้สำเร็จครับ โดยเรียกดูที่ http://localhost:3000 ได้เลย เวลาขอดู environment info ก็ดูได้ตามปกติ ดังรายการแสดงต่อไปนี้

Ruby version1.8.4 (i386-mswin32)
RubyGems version0.9.0
Rails version1.1.6
Active Record version1.14.4
Action Pack version1.12.5
Action Web Service version1.1.6
Action Mailer version1.2.5
Active Support version1.3.1
Application rootC:/railapp/public
Environmentdevelopment
Database adaptermysql

ตอนแรกก็ดีใจมาก เพราะหมดปัญหาเรื่อง RoR แล้ว จึงติดตั้ง KV ลงใน Application root ของ  RoR ตัวนี้ แล้วเรียกดูใหม่ ปรากฏว่า IE7 ที่ใช้เรียก http://localhost:3000 ฟ้อง page not found ผมก็เลยลองก็อปเอา index.html ของ RoR ตัวเดิมมาใช้ ก็รันได้ครับ แต่พอคลิกดู About your applicatin environment กลับขึ้นว่า Apllication error แสดงว่า config ของ KV ที่ใช้อยู่มีปัญหา ไม่ทราบมีคำแนะนำไหมครับ

 

ดร. ธวัชชัย ปิยะวัฒน์

เราเองก็ไม่ได้ใช้ Apache ครับ เราใช้ lighttpd ทั้งในการพัฒนาและใช้จริงกับ GotoKnow ด้วย ผมคิดว่า lighttpd ตัวเล็กและ stable ดีมากครับ  ถ้าไม่ได้มีความจำเป็นต้องใช้ Apache เพื่อวัตถุประสงค์อื่น ผมขอแนะนำ lighttpd สำหรับ production environment ครับ

เรื่อง page not found ที่จริงนั้นถูกต้องแล้วครับ พอ เกิด page not found ขึ้น WEBrick ควรจะไปเรียก dispatch.cgi ทำงานครับ แต่ปรากฎว่า WEBrick ไม่เรียก ไม่แน่ใจว่าเป็นเพราะสาเหตุใดเหมือนกันครับ

ผมขอเสนอให้คุณหมอทดลองกับ Linux บน VMWare ก่อนดีไหมครับ จากนั้นค่อยทดลองติดตั้งบน Windows ครับ

คุณวิภัทร (ม.สงขลาฯ) ได้เขียนคำแนะนำในการติดตั้งไว้ ที่นี่ ด้วยครับ

ที่จริงแล้วผมเปิด Google Groups สำหรับ community-supported groups เดี๋ยวจะรีบแจ้งทุกท่านครับ 

หมอปัณ

ผมทดลองติดตั้งใหม่แล้วตามคำแนะนำต่างๆจาก อจ.เผด็จ แต่ยังไม่สำเร็จ ก็เลยตั้งต้นด้วยวิธีติดตั้ง WAMP (Windows+Apache web server+MySQL+PHP) แล้วติดตั้ง RoR ตามที่คุณ csanford ได้แนะนำไว้ใน http://forum.stylegala.com/viewtopic.php?t=3964 เมื่อทดสอบทำ RoR app. แรกก็ work ดีครับ รันได้ไม่มีปัญหา และ fast cgi ก็ใช้ได้ หมดปัญหาแล้ว จากนั้นผมก็ติดตั้งต่อเนื่องตามคำแนะนำของ อจ.เผด็จที่รวบรวมให้ในคำถามที่ผมถามไว้กับคุณ Lord Vader ที่ http://gotoknow.org/ask/chewanakin/2251 

ผลลัพธ์คือ เมื่อรัน ruby script/server สามารถเปิด http://localhost:3000 แล้วเห็น KV รันได้อย่างถูกต้องแล้วครับ!!!

คำถามคือ ทุกครั้งที่ใช้งาน KV ต้องรันสคริปท์ ruby script/server นี้ก่อนเสมอนี้ แล้วมันก็เปิดบริการ WEBrick ขึ้นมา เข้าใจวานี่คือ server อีกตัวหนึ่งที่ไม่ใ Apache ผมลองเปิดไปที่ http://localhost/kv/ ปรากฏว่ามีรายการ directory list ของ KV มาให้อ่านดู ไม่ยอมรันให้ นี่แปลว่า บน Apache ไม่ยอมรัน Ruby ใช่ไหมครับ แล้วตอน test RoR แล้ว work ดี (คือคลิกดู Application environment ได้อย่างถูกต้อง)

หมอปัณ

ถามต่อนะครับ เพราะบังเอิญผมไปโดนปุ่ม บันทึก เข้า แล้วการ post คำถามของ KV ก็คลิกแก้ไขไม่ได้ ก็เลยต้องเขียนถามต่อให้เข้าใจครับ

คือตอน test ก็ work ดีสำหรับ RoR บน Windows+Apache แต่พอติดตั้ง KV กลับไม่รันให้ ไม่ทราบต้อง config อะไรเพิ่ม

และผมเข้าใจถูกหรือไม่เรื่อง WEBrick ครับ

 

ดร. ธวัชชัย ปิยะวัฒน์

WEBrick เป็น server อีกตัวหนึ่งซึ่งมากับ ruby distribution ครับ

ปกติสำหรับ RoR นั้นเราจะ run script/server เพื่อพัฒนาใน development mode ครับซึ่งจะเรียก WEBrick ขึ้นมาทำงาน แต่ในการทำงานจริงนั้นเราจะใช้  Apache หรือไม่ก็ Lighttpd (GotoKnow ใช้ตัวนี้) ครับ

ช่วงนี้มีการเปลี่ยนแปลงใน code เยอะมากครับเพื่อให้สามารถติดตั้งกับ share.psu.ac.th ได้ตรงตาม requirements ของ ม.สงขลาฯ ครับ เมื่อ code ส่วนนี้เสร็จแล้ว ผมเชื่อว่าจะทำให้ติดตั้งภายในองค์กรได้ง่ายขึ้นครับ

ดังนั้นจึงขอรบกวนให้คุณหมอรอก่อนจนกว่าเราพัฒนาส่วน code เพื่อ share.psu.ac.th เสร็จครับ แล้วเราจะเข้าไปดูส่วนในการติดตั้งบน Windows ให้ทำงานได้ถูกต้องครับ เรามั่นใจว่าอย่างไรก็ไม่เกินปลายเดือนกุมภาฯ นี้ครับ

หมอปัณ

ตอนนี้ผมติดตั้งใช้งาน KV กับ Apache บน Windows ได้เรียบร้อยแล้วครับ โดยได้คำแนะนำจากเว็บนี้ครับ http://wiki.rubyonrails.org/rails/pages/Fast+CGI+and+Apache2+for+Windows+XP

คือต้องเข้าไปแก้ไขไฟล์ config ของ Apache คือ httpd.conf ที่สำคัญ 2 จุดคือ

<IfModule mod_fastcgi.c>
FastCgiServer c:/wamp/www/kv/public/dispatch.fcgi \
-initial-env RAILS_ENV=production \
-initial-env PATH="c:/wamp/ruby/bin;c:/windows/system32;c:/windows;c:/wamp/mysql/bin/" \
-initial-env RUBYOPT=rubygems \
-processes 3 -idle-timeout 120
AddHandler fastcgi-script .fcgi
</IfModule>

และ

<VirtualHost *:80>
DocumentRoot "c:/wamp/www/kv/public"
ServerName localhost
<Directory "c:/wamp/www/kv/public/"> Options ExecCGI FollowSymLinks
AllowOverride all
Allow from all
Order allow,deny
AddHandler cgi-script .cgi
AddHandler fastcgi-script .fcgi
</Directory>
</VirtualHost>

โดยผมติดตั้ง ruby ไว้ที่ c:/wamp/ruby ติดตั้ง MySQL ไว้ที่ c:/wamp/mysql ติดตั้ง KV ไว้ที่ c:/wamp/www/kv แก้ไขแล้ว restart Apache แล้ว browse ไปที่ http://localhost ได้เลยครับ (แถบสีส้มที่ระบายไว้เป็นบรรทัดที่สำคัญ ขาดไม่ได้เลย) ส่วนเครื่องอื่นในเครือข่าย ก็เพียงแต่เรียกเข้ามาที่เลข IP ของเครื่อง KV ก็ใช้ได้เช่นกัน

 

หมอปัณ

มีคำถามใหม่ครับ ติดตั้ง KV จนใช้งานได้แล้ว ดีใจมาก จะได้เริ่มใช้ภายในกลุ่มงานเวชศาสตร์ฟื้นฟุเสียที แต่ติดตรงที่ Webmaster เริ่มงานอย่างไร ต้อง register หรือเปล่า แล้วเมนูภาษาไทยจัดการผ่าน Webmaster ใช่หรือไม่ครับ

 

ดร. ธวัชชัย ปิยะวัฒน์

ขอชื่นชมคุณหมอมากครับที่สามารถติดตั้งได้ใน Windows ข้อมูลที่คุณหมอหาได้มีประโยชน์มากครับในการแนะนำให้คนอื่นที่ต้องการติดตั้งบน Windows สามารถใช้ได้ครับ

Webmaster ต้อง register ด้วยครับ แล้วเราเลือกให้บุคคลเหล่านั้นเป็น webmaster ที่ config/kv.rb ครับ และ Webmaster สามารถแก้ให้ใช้เมนูภาษาไทยได้ใน /admin ครับ

คุณหมอกรุณารออีกสัปดาห์ก่อนใช้งานจริงครับ จะได้ checkout code ใหม่ได้ครับ เพราะตอนนี้มีการแก้ไขค่อนข้างมากครับ

ผมจะทำส่วนแก้ไขให้ใช้งานกับ Rails 1.2 และเปลี่ยนการใช้ model Counter มาเป็น Hit ซึ่งจะลด load ระบบลงได้มากครับ

ส่วน authentication ก็สามารถ check กับ IMAP server ได้ด้วยครับ 

นอกจากนี้เราจะทำส่วนการใช้ tags ใหม่เพื่อให้เหมาะสมใช้งานภายในองค์กรด้วยครับ

เราจะพยายามทำให้เสร็จภายในสัปดาห์นี้ครับ

หมอปัณ

ผมติดตั้งส่วนของ Admin หมดเรียบร้อยแล้วครับ และเริ่มให้ทดลองใช้งานกลุ่มเล็กๆก่อน พอ release ของจริงออกมา ก็จะได้อัปเกรด(หรือติดตั้งกันใหม่?) ใช้งานจริงกันได้พอดี

แต่กว่าจะใช้งานได้เรียบร้อย ก็เหงื่อตกเหมือนกัน เพราะไปแก้ไขการติดตั้ง Site แล้วเติมช่อง Annouce Planet และ Focus Planet โดยไม่มีแพลนเน็ตและบล็อคจริงอยู่ ปรากฏว่าถึงกับไม่สามารถเปิดเว็บไซท์ขึ้นได้เลยไม่ว่าจะเพจไหนสักเพจ อาศัยวิญญาณโปรแกรมเมอร์เก่า ตั้งข้อสงสัยกับเรคคอร์ดล่าสุดที่ทำไว้ คือ เรคคอร์ดในตาราง site ก็เลยเข้าไปลบทิ้งทั้งเรคคอร์ด เว็บจึงเรียกคืนมาได้เหมือนเดิม ไม่ทราบเหมือนกันว่าเข้าใจถูกหรือเปล่าครับ เพราะพอฟื้นเว็บขึ้นมาได้ ผมก็ค่อยๆเข้าไปเติมข้อมูล site ทีละข้อๆ จนค่อนข้างมั่นใจถึงจุดที่เกิดปัญหา

 

ดร. ธวัชชัย ปิยะวัฒน์
ขอบคุณคุณหมอที่แจ้งครับ เป็น bug ตัวใหญ่ของระบบเลยครับ เดี๋ยวจะรีบแก้ให้ถ้าระบบอ่านข้อมูลใน sites มาแล้วไม่เจอ planets จริงก็ผ่านไปครับ
หมอปัณ
อยากให้ลองเข้ามาชม KV on WAMP ที่ เวชศาสตร์ฟื้นฟูก้าวไกล ผมติดตั้งไว้ ให้เปิดออกเน็ตชั่วคราว เผื่ออาจารย์ช่วยแสดงความคิดเห็นบ้าง ผมยังไม่ได้ติดตั้งให้ค้นหาได้โดย Google เข้าใจว่าต้องจดเป็นโดเมนเนมจึงจะใช้ได้