นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน
อ่าน: 416
ความเห็น: 0

การอัพเกรด Joomla เวอร์ชั่นเก่าให้เป็น Joomla เวอร์ชั่นปัจจุบันด้วย J2XML [C]

สวัสดีครับ

Joomla เป็น CMS หรือเว็บไซต์สำเร็จรูปที่มีผู้นิยมนำไปใช้ในการพัฒนาเว็บไซต์เป็นอันดับสองของโลก รองเพียงแค่ Wordpress เท่านั้นที่มีผู้ใช้งานสูงสุด [https://www.isitwp.com/popular-cms-market-share] ส่วนในประเทศไทยก็ต้องบอกว่า Joomla เป็น CMS ที่ได้รับความนิยมมาก โดยเฉพาะในหน่วยงานราชการ ที่มีเจ้าหน้าทีทำงานด้านคอมพิวเตอร์อยู่จำกัด การใช้เว็บสำเร็จรูปจึงเป็นทางเลือกอันดับหนึ่ง เพื่อใช้ในการพัฒนาเว็บไซต์ได้อย่างรวดเร็ว และง่ายต่อการจัดการ

แต่ทราบหรือไม่ว่าหน่วยงานราชการหลาย ๆ แห่งที่ใช้ Joomla เป็นเว็บไซต์ของหน่วยงานยังมีอีกหลายแห่งที่ยังไม่ได้ปรับปรุงเวอร์ชั่นให้สูงขึ้น ยังพบเห็นเป็น Joomla 1.5 หรือ 2.5 อยู่เป็นจำนวนมากทีเดียว ซึ่งการไม่ปรับปรุงเวอร์ชั่นให้สูงขึ้น จะพบปัญหาอยู่เป็นประจำ คือ เว็บไซต์โดนโจมตีจากบุคคลที่ไม่หวังดี โดนเปลี่ยนหน้าเว็บไซต์ หรือโดนวาง Backdoor ไว้ด้านหลังเพื่อเป็นฐานที่มั่นในการไปโจมตีเว็บไซต์อื่น ๆ เป็นต้น แต่ก็เข้าใจว่าบางหน่วยงานมีเจ้าหน้าที่ด้านคอมพิวเตอร์จำนวนจำกัดจริง ๆ ไม่มีเวลามาอัพเกรด หรือบ้างก็ไม่รู้วิธีว่าจะทำการอัพเกรดอย่างไร ถ้าต้องมาทำใหม่ทั้งหมดก็จะเป็นการเสียเวลา ดังนั้นจึงเป็นที่มาของการเขียนบทความนี้ขึ้น

จริง ๆ บทความนี้ ตั้งใจจะเขียนมาตั้งแต่ Joomla 3.x ออกมาใหม่ ๆ แต่เนื่องจากไม่มีเวลาได้เขียนสักที จนถึงตอนนี้ Joomla ได้ออกเวอร์ชั่น 3 รุ่นล่าสุดคือ 3.9.19 และกำลังจะออก Joomla 4.0 stable มาให้ได้ใช้กันแล้ว ขณะที่เขียนบทความยังเป็น Joomla 4.0 alpha 12* [https://developer.joomla.org/news/793-joomla-4-is-on-the-horizon-alpha-12.html] จุดมุ่งหมายของบทความนี้ก็คือเพื่อเป็น กรณีศึกษาในการอัพเกรด Joomla ตั้งแต่เวอร์ชั่น 1.5.x, 2.5.x ไปยังเวอร์ชั่น 3.9.19 ก่อน ซึ่งเมื่อไหร่ที่ไปถึงรุ่น 3.10 ก็จะสามารถอัพเกรดไปยัง Joomla 4.0 ได้ตามเอกสารนี้ครับ [https://docs.joomla.org/Planning_for_Mini-Migration_-_Joomla_3.10_to_4.x] แต่ว่ากันตามความจริงผมก็ไม่แน่ใจว่าเมื่อถึงเวลานั้นการ Migration ข้ามเวอร์ชั่นจาก 3 ไปถึง 4 เครื่องมือที่ Joomla ให้มาจะสามารถทำได้อย่างสมบูรณ์ 100% รึเปล่าอันนี้ตอบไม่ได้จริง ๆ อาจจะต้องรอจนถึงวันที่ออก Joomla 3.10 ก่อนจึงจะได้ทดสอบกันอีกครั้งครับ

alpha หมายถึง การนำเอาโปรแกรมสำเร็จที่เขียนเสร็จใหม่ ๆ ไปให้ "กลุ่มลูกค้าประจำ" ทดลองใช้ดูก่อน หรือพูดง่าย ๆ ว่า ให้ช่วยเป็นผู้ตรวจสอบเบื้องต้นให้ เพื่อจะดูว่าโปรแกรมที่เขียนขึ้นนั้นใช้ได้ดีหรือไม่ ยังขาดตกบกพร่องอะไรบ้าง หรือมีปัญหาในเรื่องใด

ขออธิบายก่อนว่าเท่าที่อ่าน ศึกษา และทดสอบมา ประเภทที่ว่าแค่ลงโปรแกรมและกดปุ่มเดียว รอจนเสร็จแล้วกลายเป็นเวอร์ชั่นใหม่ ใช้งานต่อเนื่องต่อไปเลยนั้นยังไม่พบว่ามีวิธีการที่สามารถทำได้แบบนั้น เนื่องจาก Joomla มีองค์ประกอบหลายส่วน เช่น Template, Component, Module, Plugin ที่สามารถติดตั้งเพิ่มเติมได้อย่างอิสระ มีผู้พัฒนาหลากหลาย โดยเป็นที่ทราบกันดีว่า หากจะดาวน์โหลดติดตั้งใช้งานต้องเลือกที่รองรับก้บเวอร์ชั่น Joomla ที่เราใช้อยู่ ไม่เช่นนั้นจะใช้งานไม่ได้ แถมอาจจะทำให้เว็บไซต์พังได้อีกด้วย นี่ยังไม่รวมถึงฐานข้อมูลที่แต่ละเวอร์ชั่นจะมีโครงสร้างแตกต่างกันทำให้อัพเกรดยากขึ้น ถ้าได้อ่านเอกสารที่เว็บไซต์ docs.joomla.org จะพบว่าทางผู้ผลิตก็ไม่ได้ใช้คำว่าอัพเกรดแต่ะจะใช้คำว่าเคลื่อนย้าย (Migration) แทน

และแน่นอนว่าการเคลื่อนย้ายก็จะเน้นไปทางด้านข้อมูล รวมถึงบัญชีผู้ใช้ เป็นหลัก ลองนึกดูว่ามีเว็บไซต์แห่งหนึ่งเป็นเว็บไซต์ประชาสัมพันธ์ข่าวสารและมีการอัพเดทข้อมูลอยู่ตลอดมีข้อมูลที่ต้องจัดการเป็นพันๆ หากได้ข้อมูลออกมาทั้งหมดเพื่อย้ายไปยังเว็บไซต์ใหม่ก็เป็นประโยชน์ในการย่นระยะเวลาในการพัฒนาเว็บไซต์ได้อย่างมาก ที่เหลือก็เพียงแค่ไปจัดการ Template, Component, Module ใหม่เพื่อปรับแต่งให้สวยงามต่อไป

ในบทความนี้จะแสดงวิธีการเคลื่อนย้ายข้อมูลจากเวอร์ชั่น 1.5.x และ 2.5.x ไปยังเวอร์ชั่นปัจจุบันคือ 3.9.19 โดยใช้ Extension ที่ชือว่า J2XML ซึ่งเป็นเครื่องมือที่ให้ใช้งานได้ฟรี หลักการใช้งานก็คือ ต้องติดตั้ง J2XML ทั้ง 2 ที่ คือเว็บไซต์เดิมเพื่อส่งข้อมูลออกมา และเว็บไซต์ใหม่ที่ต้องการนำเข้าข้อมูล โดยขั้นตอนแรกจะเป็นวิธีการติดตั้งที่เว็บไซต์เดิม และส่งข้อมูลออกมา และจากนั้นขั้นที่สองจะเป็นวิธีการติดตั้งที่เว็บไซต์ใหม่ เพื่อนำเข้าข้อมูลเข้าไปในเว็บไซต์

 

ขั้นตอนการทำงาน

การส่งออกข้อมูลออกมาจะประกอบไปด้วย 3 ส่วนหลัก ๆ คือ

1. Export Structure คือ การส่งออกข้อมูลโครงสร้างที่ใช้จัดหมวดหมู่ของบทความในเว็บไซต์
2. Export Users คือ การส่งออกข้อมูลบัญชีผู้ใช้งานทั้งหมดในเว็บไซต์
3. Export Block คือ การส่งออกข้อมูลเนื้อหาเว็บไซต์

จากนั้นก็จะเป็นการนำเข้าข้อมูลโดยใช้ไฟล์ทั้ง 3 ส่วนเข้าไป ก็จะได้โครงสร้างข้อมูล, เนื้อหาเว็บไซต์ และบัญชีผู้ใช้งานทั้งหมด เข้าไปในเว็บไซต์ใหม่

เมื่อได้ทราบรายละเอียดแล้ว ต่อไปจะเริ่มดำเนินการตามขั้นตอนต่อไปนี้

ขั้นตอนที่ 1 วิธีการติดตั้งและวิธีการส่งข้อมูลออกมา สามารถเลือกหัวข้อได้ตามที่ต้องการ จาก link ด้านล่าง เนื่องจากมีเนื้อหาค่อนข้างเยอะ จึงแบ่งบทความออกเป็นหัวข้อ ดังนี้

ขั้นตอนที่ 2 หลังจากส่งข้อมูลออกมาแล้ว สามารถนำเข้าข้อมูลได้ตามหัวข้อ ดังนี้

การแก้ไขปัญหา

 

อัพเดทข้อมูลเพิ่มเติม

เว็บไซต์ https://www.eshiol.it ได้ประกาศผ่านทางหน้าเว็บไซต์วันที่ 4 มิถุนายน 2563 ว่า J2XML 3.9 กำลังจะออกมาเร็ว ๆ นี้ ซึ่งมีคุณสมบัติสามารถแชร์ข้อมูลระหว่าง Joomla เวอร์ชั่น 3 และเวอร์ชั่น 4 ได้ อ่านข่าวเพิ่มเติมได้จาก https://www.eshiol.it/joomla/j2xml/j2xml-3-9.html

 

เล่าเรื่องจากประสบการณ์

ก่อนที่จะมาใช้ J2XML ในการอัพเกรด Joomla ได้เคยทดลองใช้เครื่องมืออยู่ตัวนึงที่ชื่อ jUpgrade (ปัจจุบัน jUpgrade ถูกเปลี่ยนชื่อเป็น jUpgradePRO ยังมีอยู่ใน Extension ของ joomla.org แต่สถานะไม่ฟรี อยู่ที่ https://extensions.joomla.org/extension/jupgradepro) ต้องจ่ายเงินเพื่อใช้งานเพื่อใช้อัพเกรด Joomla ส่วนตัวเคยได้ลองอยู่ครั้งนึง เป็นช่วงที่ Joomla 3 ออกมาและกำลังจะจัดทำเว็บไซต์ศูนย์คอมพิวเตอร์ ม.อ. ใหม่พอดี (ตอนนั้นเว็บไซต์ศูนย์คอมพิวเตอร์ ม.อ. เป็น Joomla 2.5) ด้วยความที่ขี้เกียจทำใหม่ เลยทดสอบใช้ jUpgrade ผลที่ได้คือ ทำไม่สำเร็จ ผลไม่เป็นดังที่คาด คือเป็น Joomla 3 จริง แต่ไม่มีอะไรเกิดขึ้น ข้อมูลก็ไม่มา, Template ก็เป็นค่าเริ่มต้น, Extension ที่ใช้กับเว็บไซต์เดิมก็ไม่ปรากฏให้เห็น ดังกับว่าเป็นแค่การติดตั้ง Joomla 3 ใหม่ให้เท่านั้น เพราะ jUpgrde จะไปสร้าง Directory ใหม่ที่เป็น Joomla 3 แยกออกมาให้อีกที ไม่ได้ลบของเก่าออกไป ลองหาข้อมูลในอินเตอร์เน็ต ส่วนใหญ่จะติดปัญหาทำไม่สำเร็จ ที่สำเร็จก็มี แต่ก็จะติดปัญหาเรื่องอื่น ๆ แทน เช่นพวก Components, Modules, Plugins จะใช้ไม่ได้ จนสุดท้ายก็ไม่มีทางเลือกก็เลยต้องจัดทำเว็บไซต์ใหม่ทั้งหมด

จนมาอีกครั้งที่ได้เห็นเอกสารของเว็บไซต์ docs.joomla.org เกี่ยวกับเรื่องการ Migration Joomla ในเว็บไซต์ได้แนะนำการ Migration Joomla ทั้ง 1.5 และ 2.5 โดยเวอร์ชั่น 1.5 จากเอกสารที่ https://docs.joomla.org/Joomla_1.5_to_3.x_Step_by_Step_Migration ได้แจ้งว่าเป็นการย้ายที่สำคัญ กล่าวคือ มีความยุ่งยากซับซ้อนค่อนข้างมาก เนื่องจากโครงสร้างนั้นแตกต่างอย่างสิ้นเชิงกับเวอร์ชั่นปัจจุบัน จึงต้องอาศัยเครื่องมือที่เอาไว้ Export, Import เหมือนอย่าง J2XML มาช่วยเท่านั้น

แต่สำหรับ Joomla 2.5 นั้นแตกต่าง คือมีความยุ่งยากซับซ้อนน้อยกว่า เนื่องจากโครงสร้างค่อนข้างใกล้เคียงกับ Joomla 3 จากเอกสารที่ https://docs.joomla.org/Joomla_2.5_to_3.x_Step_by_Step_Migration  Joomla 2.5 จะมีช่องทางที่จะอัพเกรดไป Joomla 3.5.1 ได้โดยใช้ Joomla Update แล้วเปลี่ยน Update Server เป็น Short Term Support แทนที่ของเดิมที่จะเป็น Long Team Support (recommended) แต่ก่อนจะอัพเกรดก็มีขั้นตอนที่ต้องไปปรับแต่งหลายอย่างเหมือนกัน และที่สำคัญเอกสารยังแนะนำให้ต้องสำรองข้อมูลก่อนทำเสมอ เพราะมีความเสี่ยงสูงที่เว็บไซต์จะพังได้ ซึ่งผมได้ทดลองทำแล้วเหมือนกันครับ และคำตอบที่ได้ก็คือ พังไม่เป็นท่า

ผลจากการทดลองทั้ง 2 ครั้ง จึงทำให้วิเคราะห์ได้ว่าสาเหตุที่ไม่สามารถอัพเกรดได้นั้นส่วนหนึ่งก็เป็นเพราะ Template, Extension ทั้งหลายที่ไม่ Compatible กับเวอร์ชั่นใหม่ บางเว็บไซต์ที่อัพเกรดได้สมบูรณ์อาจจะเป็นเพราะไม่ค่อยได้ใช้ Extension อะไรมากมายในเว็บไซต์ใช้ของเดิม ๆ ที่มากับ Joomla ตั้งแต่ต้น ส่วนเว็บไซต์ที่อัพเกรดแล้วได้ข้อมูลมาบางส่วน แต่ Extension ใช้งานไม่ได้ อาจจะต้องเลือกติดตั้ง Extension ที่สนับสนุนเข้าไปใหม่แทน ส่วนที่อัพเกรดแล้วพังไปเลยเหมือนที่ผมลอง อันนี้คือโชคร้ายไม่สามารถใช้เครื่องมืออัพเกรดได้ก็คงต้องหาวิธีอื่น

 

บทสรุปส่งท้าย

หากท่านที่ได้อ่านบทความนี้ทั้งหมดซึ่งเป็นซีรี่ย์ชุด "การอัพเกรด Joomla เวอร์ชั่นเก่าให้เป็น Joomla เวอร์ชั่นปัจจุบันด้วย J2XML" นี้จบแล้ว คงจะสามารถอัพเกรดเวอร์ชั่นให้สูงขึ้นได้ บทความนี้ได้พยายามนำเสนอขั้นตอน การแก้ไขปัญหา และเรื่องราวที่พบเจอให้ครบทุกด้านเพื่อเป็นข้อมูลให้กับผู้อ่านทุกท่าน แต่ขอย้ำเพื่อชี้แจงตรงนี้ว่าบทความที่เขียนทั้งหมดเป็นแนวคิด และวิธีการของผู้เขียนเอง ซึ่งอาจจะไม่ใช่วิธีการที่ดีที่สุด เหมาะสมที่สุด แต่เห็นว่าอาจจะมีประโยชน์แก่ท่านผู้ที่สนใจไม่มากไม่น้อย จึงได้เขียนบทความนี้ขึ้น

หากบทความนี้มีขอผิดพลาด ประการใด ผู้เขียนต้องขออภัยมา ณ ที่นี้ด้วยครับ

ขอบคุณครับ

 

อ้างอิง

https://www.isitwp.com/popular-cms-market-share
https://developer.joomla.org/news/793-joomla-4-is-on-the-horizon-alpha-12.html
https://docs.joomla.org/Special:MyLanguage/Planning_for_Migration
https://docs.joomla.org/Joomla_1.5_to_3.x_Step_by_Step_Migration
https://docs.joomla.org/Joomla_2.5_to_3.x_Step_by_Step_Migration
https://docs.joomla.org/Planning_for_Mini-Migration_-_Joomla_3.10_to_4.x
https://dictionary.sanook.com/search/dict-computer/alpha-version
https://www.eshiol.it

หมวดหมู่บันทึก: เรื่องทั่วไป
คำสำคัญ (keywords): upgrade  Migration  Joomla 3  Joomla 2.5  Joomla 1.5
สัญญาอนุญาต: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
สร้าง: 22 มิถุนายน 2563 12:51 แก้ไข: 25 พฤศจิกายน 2563 00:42 [ แจ้งไม่เหมาะสม ]
ดอกไม้
People who like this: Ico24 วันสุไลมาน เจะแวมาแจ.
People Who Like This
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

ไม่มีความเห็น
คุณต้องทำการเข้าระบบก่อนแสดงความเห็น