อัปเดท Drupal 10 โดยไม่ใช้ Composer, ใช้แค่ FTP หรือ Shell/SSH

วันนี้มาลองทำการอัปเดท 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