อัปเดท Drupal 10/11 ด้วย Composer

ล็อกอินเข้าในเซิร์ฟเวอร์ และไปที่ตำแหน่งโฟลเดอร์เดียวกับไฟล์ composer.json ของเว็บไซต์ที่ต้องการอัปเดท 

ขั้นตอนอัปเดท Drupal 10/11 ด้วย Composer

1. เปิดโหมดบำรุงรักษาในเว็บ Drupal เพื่อหยุดการใช้งานเว็บชั่วคราว

 

2. สำรองข้อมูล ไฟล์ระบบ ฐานข้อมูล และข้อมูลอื่นๆ เพื่อป้องกันความผิดพลาด

ใช้คำคำสั่ง drush sql-dump เพื่อ backup ฐานข้อมูล

vendor/bin/drush sql-dump --result-file=backup-database.sql

บีบอัดไฟล์ทั้งหมดเก็บไว้

tar -zcvf backup-website.tar.gz .

 

3. แก้ไขสิทธิการเข้าถึงไฟล์ระบบ

ทั้งนี้ตรวจสอบว่าการติดตั้งว่าเป็นแบบดั้งเดิมด้วยการแตกขยายไฟล์ .tar.gz .zip แล้วติดตั้ง

chmod 777 sites/default
chmod 666 sites/default/*settings.php
chmod 666 sites/default/*services.yml

หรือใช้คำสั่ง composer create-project drupal/recommended-project drupal ในการติดตั้ง Drupal

chmod 777 web/sites/default
chmod 666 web/sites/default/*settings.php
chmod 666 web/sites/default/*services.yml

 

4. ตรวจสอบแพจเกจ Drupal core

ตรวจสอบว่าเป็นรุ่นแนะนำ drupal/core-recommended หรือว่าเป็น drupal/core

composer show drupal/core-recommended

หากเป็นรุ่นแนะนำ drupal/core-recommended จะแสดงผลลัพธ์เกี่ยวกับข้อมูลแพ็กเกจต่างๆ

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

 

ความแตกต่างระหว่าง drupal/core-recommended และ drupal/core

drupal/core-recommended

  • แพคเกจนี้ มีการล็อก หรือ จำกัดการข้ามรุ่นเอาไว้ โดยจะไม่อัปเดทข้ามเวอร์ชั่น อนุญาตให้อัปเดทเฉพาะรุ่นย่อยในรุ่นหลักเดียวกันเท่านั้น เช่นจาก Drupal 10.3.6 เป็น 10.4.6 จะยังไม่อัปเกรดไปยัง 11.x
  • ข้อดี: ช่วยให้ มีความเสถียรสูงสุด (maximum stability) เพราะมั่นใจได้ว่า Dependencies ที่ใช้ผ่านการทดสอบร่วมกับ Drupal Core เวอร์ชันนั้นๆ มาแล้ว ลดความเสี่ยงที่การอัปเดต Dependencies จะทำให้เว็บไซต์พัง

drupal/core

  • แพ็คเกจนี้ มีความยืดหยุ่นมากกว่า อนุญาตให้ composer อัปเดทไปยังเวอร์ชั่นใหม่ได้เลย หาก composer พิจารณาว่าเข้ากันได้
  • ข้อดี: ได้ใช้ฟีเจอร์ใหม่ๆ หรือการแก้ไขล่าสุดของ Dependencies เร็วกว่า
  • เหมาะสำหรับ: นักพัฒนาที่ต้องการควบคุม Dependencies อย่างละเอียด หรือต้องการทดลองใช้ Dependencies เวอร์ชันล่าสุด และเข้าใจความเสี่ยงที่อาจเกิดขึ้น

 

5. อัปเดท Drupal core

ถ้าใช้งาน drupal/core-recommended ให้ใช้คำสั่งนี้

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

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

composer update drupal/core --with-dependencies

 

6. อัปเดทฐานข้อมูล

เมื่ออัปเดท Drupal core ผ่านแล้ว ให้ทำการอัปเดทฐานข้อมูลด้วย

ตรวจสอบว่ามีรายการที่ต้องอัปเดทฐานข้อมูลหรือไม่

vendor/bin/drush updatedb:status

ดำเนินการอัปเดทฐานข้อมูล

vendor/bin/drush updatedb

 

7. ล้างแคช

vendor/bin/drush cr

 

8. แก้ไขสิทธิ ล็อกไฟล์ระบบกลับไปเหมือนเดิม

chmod 755 sites/default
chmod 644 sites/default/*settings.php
chmod 644 sites/default/*services.yml

 

9. แก้ไขไฟล์ .htaccess

หากมีการแก้ไขไฟล์ .htaccess ก็ให้ทำการแก้ไขด้วย เพราะทุกการอัปเดท ตัวไฟล์ .htaccess จะคืนค่ากลับไปสู่ค่าเริ่มต้นเสมอ

 

10. ปิดโหมดบำรุงรักษา กลับมาใช้งานตามปกติ

เมื่ออัปเดทเสร็จแล้ว ก็เปิดเว็บไซต์กลับมาใช้งานตามปกติ

 

11. ลบไฟล์ backup

เมื่อทุกอย่างทำงานได้อย่างราบรื่น ก็ให้ลบไฟล์ backup-website.tar.gz จากข้อ (2) เพื่อประหยัดพื้นที่ในเซิร์ฟเวอร์

rm backup-website.tar.gz backup-database.sql

 

การส่งความคิดเห็น ถือว่าคุณยอมรับ ข้อกำหนดการใช้งาน และ นโยบายความเป็นส่วนตัว ของเรา