10 กรกฎาคม 2564

วิธีอัพเดท Drupal 8/9 ให้เป็นเวอร์ชั่นล่าสุดด้วย Composer

ต่อเนื่องจาก บันทึกขั้นตอน วิธีอัพเกรด Drupal 8 ให้เป็น Drupal 9 ด้วยคำสั่ง Composer กระบวนการอย่างหนึ่งที่จำเป็นต้องทำก่อนการอัพเกรด Drupal 8.x ให้เป็น Drupal 9.x คือ ต้องอัพเดท Drupal 8.x ให้เป็นเวอร์ชั่นล่าสุดเสียก่อน ทั้งนี้ สามารถใช้คำสั่ง Composer ในการอัพเดท Drupal Core ให้เป็นรุ่นเวอร์ชั่นล่าสุด ดังนี้

วิธีอัพเดท Drupal 8/9 ให้เป็นเวอร์ชั่นล่าสุดด้วย 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/core-recommended หรือ drupal/core ด้วยการ run คำสั่ง

composer show drupal/core-recommended

หากมีการติดตั้ง drupal/core-recommended จะแสดงข้อมูลแพจเกจต่างๆ ออกมา

แต่หากไม่ได้ติดตั้ง drupal/core-recommended จะแสดงข้อความ "Package drupal/core-recommended not found"

3. อัพเดท Drupal Core

อ้างอิงจาก ข้อ 2 หากมีการติดตั้ง drupal/core-recommended ให้ใช้คำสั่งดังนี้

composer update drupal/core "drupal/core-*" --with-all-dependencies

แต่ถ้าไม่ได้ติดตั้ง drupal/core-recommended เอาไว้ ให้ใช้คำสั่งนี้แทน

composer update drupal/core --with-dependencies

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 {} \;

อ้างอิงเนื้อหาจาก Updating Drupal core via Composer - Drupal.org

** หมายเหตุ : ก่อนการอัพเดท Drupal 8/9 ควรสำรองข้อมูลก่อนเสมอ เผื่อว่าอัพเดทไม่สำเร็จ ข้อมูลจะได้ไม่พังทั้งหมด