ทุกครั้งที่มีการ upgrade PHP บน Linux กิจกรรมหนึ่งที่ผมมักจะต้องทำแต่ไม่ค่อยได้ทำวิธีการเก็บเอาไว้ก็คือกระบวนการในการจัดการกับ PHP เก่าหลังจากที่อัพเกรดไปแล้ว นี่ก็คือสคริปต์หลัก ๆ ที่ต้องดำเนินการ
เช็คว่าได้มีการติดตั้งอะไรไปบ้าง
ตัวอย่างสคริปต์นี้สำหรับ php8.2 ซึ่งสามารถเปลี่ยนเลขได้ตามสะดวก
sudo apt list --installed php8.2*
ติดตั้ง PHP รุ่นใหม่
ตัวอย่างสคริปต์นี้เป็นการติดตั้ง PHP รุ่นใหม่ (php8.3) โดยอ้างอิงจากของที่ติดตั้งเดิม (ต้องดูค่า package จากคำสั่งที่แล้ว)
sudo apt install php8.3 php8.3-cli php8.3-common php8.3-curl php8.3-gd php8.3-mbstring
php8.3-mysql php8.3-opcache php8.3-readline php8.3-sqlite3 php8.3-xml php8.3-zip php8.3-apcu
php8.3-igbinary php8.3-imagick php8.3-intl php8.3-uploadprogress
เปิดการใช้งาน PHP ใหม่บน Apache และปิดการใช้งาน PHP เก่า
sudo a2enmod php8.3
sudo a2dismod php8.2
จากนั้นจึง Restart Apache เพื่อให้การตั้งค่าสมบูรณ์
sudo systemctl restart apache2
หากยังจำเป็นต้องเก็บ PHP เดิมไว้ก่อน (ยังไม่พร้อมสลับ PHP สำหรับ CLI)
ตั้งค่า PHP CLI เป็นของ PHP รุ่นเก่า
sudo update-alternatives --set php /usr/bin/php8.2
ถอน PHP รุ่นเก่าและ Package ที่เกี่ยวข้อง
sudo apt remove php8.2* && sudo apt autoremove
จบแล้วสำหรับกิจกรรมทั้งหมดที่เกิดขึ้น