ล็อกอินเข้าในเซิร์ฟเวอร์ และไปที่ตำแหน่งโฟลเดอร์เดียวกับไฟล์ 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
- Log in to post comments