บันทึกนี้สืบเนื่องจากต้องการอัพเกรดเวอร์ชั่น 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