วันนี้มาลองทำการอัปเดท Drupal 10 แบบไม่แอดวานซ์ (ใช้ Composer) คือใช้วิธีแบบ Old-school คือ FTP หรือ Shell/SSH เข้าไปในเครื่องเซิร์ฟเวอร์ แล้วลบไฟล์เก่า-อัปเดทไฟล์ใหม่เข้าไปแทน
อัปเดท Drupal 10 ด้วย FTP หรือ Shell/SSH
1. เตรียมตัวก่อนอัปเดท
สิ่งสำคัญก่อนการอัปเดทคือ ต้องแบ็คอัพข้อมูลทั้งหมดเสียก่อน จากนั้น ก็ย้ายไฟล์แบ็คอัพไปไว้ในโฟลเดอร์อื่น ที่ไม่ใช่โฟลเดอร์ของเว็บไซต์
จากนั้นก็เปิดโหมดบำรุงรักษา Maintenance mode เพื่อทำการอัปเดท
เข้าตามเมนู Administration > Configuration > Development > Maintenance mode เลือกที่ช่อง "Put site into maintenance mode" แล้วกด Save configuration
2. ลบไฟล์เวอร์ชั่นเก่า
เข้าไปที่โฟลเดอร์ที่วางโค้ดของเว็บไซต์ ก็ทำการ ลบโฟลเดอร์ core และ vendor ทิ้งไป
จากนั้นก็ลบไฟล์ต่างๆ ที่อยู่ในโฟลเดอร์หลักของเว็บไซต์ทั้งหมด รวมถึงไฟล์ที่ซ่อนอยู่ ไฟล์ที่มี . นำหน้า (ลบเฉพาะไฟล์ ไม่ลบโฟลเดอร์อื่น)
rm -rf core vendor
rm -f *.* .[a-z]*
3. นำไฟล์เวอร์ชั่นใหม่ เข้าไปแทนที่
ให้ดาวน์โหลดไฟล์ Drupal 10 เวอร์ชั่นล่าสุดจากเว็บไซต์ https://drupal.org/project/drupal จากนั้น ก็แตกไฟล์ออก แล้วนำโฟลเดอร์ core และ vendor จากเวอร์ชั่นล่าสุด ไปวางในตำแหน่งเดิมที่ลบไป
คัดลอกไฟล์ต่างๆ ที่อยู่ในโฟลเดอร์หลัก นำไปวางในตำแหน่งเดิมที่ลบออกไปเช่นกัน
หรือถ้าสามารถใช้คำสั่ง shell ก็ใช้คำสั่ง wget ในการดาวน์โหลดไฟล์ จากเว็บ Drupal และพิมพ์คำสั่ง ดังนี้
wget https://ftp.drupal.org/files/projects/drupal-10.x.x.zip (หมายเหตุ: ต้องเปลี่ยนเลขเวอร์ชั่นด้วยนะ)
unzip drupal-10.x.x.zip
cd drupal-10.x.x
cp -R core vendor ..
cp *.* .[a-z]* ..
อย่างไรก็ตาม หากทำการวางไฟล์ใหม่เข้าไปแล้ว ต้องตรวจสอบให้ดีว่าเคยมีการปรับแก้ไขไฟล์ต่างๆ หรือไม่ เช่น .htaccess หรือ rotobs.txt เป็นต้น
4. ทำการอัปเดทฐานข้อมูล /update.php
เมื่อทำการนำไฟล์ใหม่ มาแทนไฟล์เก่าเรียบร้อยแล้ว จำเป็นต้องทำการอัปเดทฐานข้อมูลด้วย
โดยการเปิดเบราว์เซอร์ เรียกหน้าเพจ https://www.example.com/update.php แล้วทำการอัปเดทตามขั้นตอน
5. อัปเดทเรียบร้อย พร้อมใช้งาน
ในตอนต้นของบทความนี้ ได้แนะนำให้ เปิดโหมดบำรุงรักษาเพื่อป้องกันความเสียหายที่อาจจะเกิดขึ้นในระหว่างลบไฟล์และเพิ่มไฟล์เข้าไปแทน เมื่อดำเนินการเรียบร้อยแล้ว ก็ให้ ปิดโหมดบำรุงรักษา เพื่อกลับสู่การทำงานปกติ
รวมถึงลบไฟล์ที่ไม่ใช้งานที่ค้างอยู่ในเซิร์ฟเวอร์ (กรณีใช้คำสั่ง shell)
rm drupal-10.x.x.zip
rm -rf drupal-10.x.x/
ข้อมูลเพิ่มเติม Updating Drupal core manually on Drupal.org
ภาพปก cover เอามาจาก The Next Frontier: Top 10 New Features of Drupal 10