เว็บไซต์ Drupal.org ได้กำหนดวันสิ้นอายุ End-of-life ของ Drupal 8.x คือวันที่ 2 พฤศจิกายน 2021 ที่จะถึงนี้ สำหรับผู้ที่ยังใช้งาน Drupal 8.x ควรอัพเกรดให้เป็น Drupal 9.x ให้เร็วที่สุดเท่าที่จะเป็นไปได้ เพื่อที่จะได้รับการอัพเดทความปลอดภัย และแก้ไขปัญหาการใช้งานอย่างต่อเนื่อง
ทั้งนี้ สำหรับ Drupal 7.x ที่เป็นรุ่นเสถียรก่อนหน้านี้ จะยังคงได้รับการอัพเดทความปลอดภัยและแก้ไขปัญหาการใช้งาน ยาวไปจนถึงเดือนพฤศจิกายน 2022 ให้เวลาเตรียมตัวใการอัพเกรดเป็น Drupal 9.x อีก 1 ปี
บันทึกขั้นตอน วิธีอัพเกรด Drupal 8.x ให้เป็น Drupal 9.x ด้วยคำสั่ง Composer
วิธีการอัพเกรดนี้ อ้างอิงจาก Upgrading from Drupal 8 to Drupal 9 (or later) - Drupal.org
เตรียมตัวก่อนการอัพเกรด Drupal 9.x
- ให้ทำการอัพเดท Drupal 8.x ให้เป็นเวอร์ชั่นล่าสุดเสียก่อน (ข้อมูล ณ เดือนกรกฎาคม 2021 เวอร์ชั่นล่าสุดคือ 8.9.16)
- อัพเกรด modules ส่วนเสริมที่ใช้ให้เป็นเวอร์ชั่นล่าสุด พร้อมกับตรวจสอบว่ารองรับ Drupal 9.x ด้วยหรือไม่
- ตรวจสอบว่า PHP ในเซิร์ฟเวอร์ เป็นเวอร์ชั่น 7.3 หรือสูงกว่าหรือไม่
ขั้นตอนการอัพเกรด Druapl 8.x ให้เป็น Drupal 9.x ด้วยคำสั่ง Composer
1. แก้ไขสิทธิการเขียนไฟล์และโฟลเดอร์ Settings ดังนี้
chmod 777 sites/default find sites/default -name "*settings.php" -exec chmod 777 {} \; find sites/default -name "*services.yml" -exec chmod 777 {} \;
2. ดาวน์โหลดแพคเกจ Drupal 9
composer require drupal/core-recommended:^9 drupal/core-composer-scaffold:^9 drupal/core-project-message:^9 --update-with-dependencies --no-update
ในกรณีที่ติดตั้ง รุ่น Dev ให้ใช้คำสั่งนี้แทน
composer require drupal/core-dev:^9 --dev --update-with-dependencies --no-update
3. อัพเดทโค้ด Drupal Core
composer update
4. อัพเดทฐานข้อมูล
เปิดเว็บไซต์เข้าที่หน้าอัพเดท /update.php และสั่งอัพเดทตามปกติ
5. แก้ไขสิทธิการเขียนไฟล์และโฟลเดอร์ Settings ให้กลับเป็นเหมือนเดิม
chmod 755 sites/default find sites/default -name "*settings.php" -exec chmod 644 {} \; find sites/default -name "*services.yml" -exec chmod 644 {} \;
** หมายเหตุ : ก่อนการอัพเกรด Drupal 8.x ให้เป็น Drupal 9.x ควรสำรองข้อมูลไว้ก่อนเสมอ เผื่อว่าอัพเกรดไม่สำเร็จ จะได้ไม่พังทั้งหมด