วิธีการอัพเกรด php 5.5.9 เป็น php 5.6 (หรือ 7.0) บน Ubuntu 14.04 และวิธีการสลับการทำงานระหว่างเวอร์ชั่น

บันทึกนี้สืบเนื่องจากต้องการอัพเกรดเวอร์ชั่น php เพื่อให้เครื่องเซิร์ฟเวอร์สามารถรองรับสคริปท์ WebApp php เวอร์ชั่นใหม่ที่สูงขึ้น

คำเตือน! ควรทดลองทำในเครื่อง dev ดูก่อนอย่าทำบนเครื่องเซิร์ฟเวอร์จริงทันทีเดี๋ยวจะน้ำตาตก
ควรทดสอบสคริปท์บนเครื่องทดสอบดูว่าสามารถทำงานได้ไม่มีปัญหาจะได้ไม่ต้องเสียเวลาแก้ไข
เพราะตัวผมมั่วจนได้เรื่องบนเครื่องเซิร์ฟเวอร์จริงจนเกือบแก้ไม่ได้ T_T … มาเริ่มกันเลย

1.เริ่มต้นใหตรวจสอบเวอร์ชั่นปัจจุบันของ php กันก่อนด้วยคำสั่ง:

php -v

ผลลัพท์ที่ได้

PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct 3 2016 13:01:18)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

2. ตามด้วยการอัพเดตและอัพเกรดระบบให้ใหม่ล่าสุด ด้วยคำสั่ง:

sudo apt-get update
sudo apt-get upgrade -y

3. เพิ่ม repository PPA ของ PHP ด้วยคำสั่ง:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

*ถ้าพบ error มีข้อความว่า Cannot add PPA ‘ppa:ondrej/php’ . Please check that the PPA name or format is correct. แสดงว่าเครื่องเซิร์ฟเวอร์ติด firewall (กรณีเครื่องอยูในเครือข่าย ม.อ.) ต้อง authentication ที่เครื่อง server ให้ออกเน็ตได้ก่อนด้วคำสั่ง

lynx login.psu.ac.th

ใส่ username และ password (กด Q ออก)

*ถ้าเป็นเครือข่ายที่อื่นน่าจะเกี่ยวกับเรื่องของ proxy ให้แก้ไขเรื่องพร๊อกซี่และใช้ลองคำสั่งดังนี้

sudo apt-get install --reinstall ca-certificates
sudo -E add-apt-repository ppa:ondrej/php

4. ทำการตรวจสอบ php extension เดิม และติดตั้ง php 5.6 ด้วยคำสั่ง:

dpkg --get-selections | grep php
  
sudo apt-get install php5.6 php5.6-cli php5.6-common php5.6-curl php5.6-dev php5.6-gd php5.6-intl php5.6-json php5.6-ldap php5.6-mbstring php5.6-mcrypt php5.6-memcache php5.6-memcached php5.6-mysql php5.6-pgsql php5.6-readline php5.6-sqlite php5.6-xml php5.6-xsl libzip4 php5.6-zip

5. คอนฟิก Apache ให้ใช้ php 5.6 ด้วยคำสั่ง:

sudo a2dismod php5
sudo a2enmod php5.6
sudo service apache2 restart

6. ตรวจสอบเวอร์ชั่นอีกครั้ง ด้วยคำสั่ง:

php -v

จากที่ผมได้ทดลองทำติดตั้งเวอร์ชั่น php 5.6 แต่ตอนตรวจสอบกลับได้ เวอร์ชั่น php 7.0 อันนี้ก็ไม่ทราบสาเหตุเหมือนกัน

หากต้องการย้อนกลับสลับไปเวอร์ชั่นเดิมคือ php 5.5.9 หรือสลับไปเวอร์ชั่น php 7.0 สรุปสามารถทำโดยที่ต้องคอนฟิกค่า 2 ค่าใหม่คือ Apache และ php CLI ด้วยคำสั่ง:

1.กรณีย้อนกลับจาก php5.6 เป็น php5.5.9 :
Apache:

sudo a2dismod php5.6
sudo a2enmod php5
sudo service apache2 restart

CLI:

sudo update-alternatives --set php /usr/bin/php5

 

2.กรณีจาก php5.5.9 เป็น php7.0 :
Apache:

sudo a2dismod php5
sudo a2enmod php7.0
sudo service apache2 restart

CLI:

sudo update-alternatives --set php /usr/bin/php7.0

 

หวังว่าบทความนี้จะมีประโยชน์กับทุกท่านนะครับ

เว็บไซต์อ้างอิง:

  • http://indrapr.blogspot.com/2016/10/updating-default-php-559-to-php-56-on.html
  • https://launchpad.net/~ondrej/+archive/ubuntu/php
  • https://cristarta.com/how-to-upgrade-php-5-5-to-5-6-on-ubuntu-14-04-lts/
  • http://askubuntu.com/questions/429803/cannot-add-ppa-please-check-that-the-ppa-name-or-format-is-correct
  • http://askubuntu.com/questions/761713/how-can-i-downgrade-from-php-7-to-php-5-6-on-ubuntu-16-04