วิธีติดตั้ง PHP 7 สำหรับ Apache หรือ Nginx บน Ubuntu 14.04 และ 14.10
หลายเดือนหลังจากเวอร์ชันเสถียรของ PHP 7.0 เปิดตัว นี่อาจเป็นเวลาที่เหมาะสมสำหรับคุณที่จะคิดอัปเกรดจากเวอร์ชันเก่าเป็น
มีข้อควรระวังอยู่เสมอเกี่ยวกับการอัพเกรดโดยเฉพาะอย่างยิ่งในสภาพแวดล้อมการใช้งานจริง แต่ตอนนี้เป็นความคิดที่ดีที่จะอัพเกรดเพื่อให้เพลิดเพลินกับการปรับปรุงความเร็ว และยังมีฟีเจอร์ต่างๆ เช่น คำใบ้ประเภทสเกลาร์ และอื่นๆ อีกมากมาย
คุณสามารถติดตั้ง PHP ได้สองเวอร์ชันบนระบบของคุณ และใช้เวอร์ชันหนึ่งเพื่อการทดสอบ แต่โปรดจำไว้ว่าคุณเปิดใช้งานโมดูล PHP Apache ได้เพียงโมดูลเดียวในเวลาที่กำหนด
คู่มือนี้เน้นที่การอัพเกรดจาก PHP 5.X โดยใช้ mod_php ในการเชื่อมต่อกับเว็บเซิร์ฟเวอร์ Apache หรือ PHP-FPM เชื่อมต่อกับเว็บเซิร์ฟเวอร์ Nginx
- ติดตั้ง PHP 7 ใน Ubuntu 14.04 และ 14.10
- อัปเกรดเป็น PHP 7.0 ภายใต้ Apache Web Server
- อัปเกรดเป็น PHP 7.0 ภายใต้ Nginx Web Server
ตอนนี้เรามาดูกันว่าคุณสามารถอัพเกรด PHP เป็นเวอร์ชันล่าสุดได้อย่างไรและยังกำหนดค่าระบบของคุณให้ใช้งานได้อีกด้วย
วิธีการติดตั้ง PHP 7 ใน Ubuntu 14.04 และ 14.10
ขั้นแรก คุณจะต้องเพิ่ม PPA ที่ดูแลโดย Ondřej Surý สำหรับ Debian และอนุพันธ์ของมัน เช่น Ubuntu โดยเรียกใช้คำสั่งด้านล่าง:
sudo add-apt-repository ppa:ondrej/php
อัพเดตระบบของคุณต่อไปดังนี้:
sudo apt-get update
ตอนนี้ทุกอย่างได้รับการตั้งค่าแล้ว และคุณสามารถติดตั้ง PHP 7.0 ได้ แต่เราจะดูการอัปเกรดสำหรับ Apache และ Nginx ในส่วนต่างๆ
อัปเกรดเป็น PHP 7.0 ภายใต้ Apache Web Server
ส่วนนี้มีไว้สำหรับระบบที่ใช้ Apache โดยที่โค้ด PHP ดำเนินการโดยใช้โมดูล mod_php
ติดตั้ง PHP เวอร์ชันล่าสุดโดยรันคำสั่งด้านล่าง:
sudo apt-get install php7.0
ผลลัพธ์ตัวอย่าง
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libapache2-mod-php7.0 libssl1.0.2 php-common php7.0-cli php7.0-common
php7.0-json php7.0-opcache php7.0-readline
Suggested packages:
php-pear
The following NEW packages will be installed:
libapache2-mod-php7.0 libssl1.0.2 php-common php7.0 php7.0-cli php7.0-common
php7.0-json php7.0-opcache php7.0-readline
0 upgraded, 9 newly installed, 0 to remove and 80 not upgraded.
Need to get 4,371 kB of archives.
After this operation, 17.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
ขณะนี้ PHP ได้รับการอัปเกรดบนระบบของคุณแล้ว แต่หากคุณใช้ระบบจัดการฐานข้อมูล MySQL คุณจะต้องดำเนินการคำสั่งต่อไปนี้เพื่ออัปเดตการเชื่อมโยง PHP-MySQL และ นอกจากนี้คุณจะต้องติดตั้งโมดูลที่มีประโยชน์เช่น Curl, GD, Cli, JSON เป็นต้น
sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json
หากคุณต้องการติดตั้งโมดูล PHP7.0 เพิ่มเติม คุณสามารถใช้คำสั่ง apt-cache เพื่อแสดงรายการโมดูล PHP7.0 ทั้งหมดและติดตั้งได้
sudo apt-cache search php7
ผลลัพธ์ตัวอย่าง
php-radius - radius client library for PHP
php-http - PECL HTTP module for PHP Extended HTTP Support
php-uploadprogress - file upload progress tracking extension for PHP
php-mongodb - MongoDB driver for PHP
php7.0-common - documentation, examples and common module for PHP
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-curl - CURL module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-readline - readline module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP (dummy)
php7.0 - server-side, HTML-embedded scripting language (metapackage)
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP
php-apcu - APC User Cache for PHP
php-xdebug - Xdebug Module for PHP
php-imagick - Provides a wrapper to the ImageMagick library
php-ssh2 - Bindings for the libssh2 library
php-redis - PHP extension for interfacing with Redis
php-memcached - memcached extension module for PHP, uses libmemcached
php-apcu-bc - APCu Backwards Compatibility Module
php-amqp - AMQP extension for PHP
php7.0-bz2 - bzip2 module for PHP
php-rrd - PHP bindings to rrd tool system
php-uuid - PHP UUID extension
php-memcache - memcache extension module for PHP
php-gmagick - Provides a wrapper to the GraphicsMagick library
php-smbclient - PHP wrapper for libsmbclient
php-zmq - ZeroMQ messaging bindings for PHP
php-igbinary - igbinary PHP serializer
php-msgpack - PHP extension for interfacing with MessagePack
php-geoip - GeoIP module for PHP
php7.0-bcmath - Bcmath module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.0-soap - SOAP module for PHP
php7.0-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.0-zip - Zip module for PHP
php-tideways - Tideways PHP Profiler Extension
php-yac - YAC (Yet Another Cache) for PHP
php-mailparse - Email message manipulation for PHP
php-oauth - OAuth 1.0 consumer and provider extension
php-propro - propro module for PHP
php-raphf - raphf module for PHP
php-solr - PHP extension for communicating with Apache Solr server
php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP
php-gearman - PHP wrapper to libgearman
php7.0-dba - DBA module for PHP
เมื่อติดตั้ง PHP7.0 และโมดูลแล้ว คุณสามารถรีสตาร์ทเว็บเซิร์ฟเวอร์ Apache และตรวจสอบเวอร์ชัน PHP ดังที่แสดง:
sudo service apache2 restart
php -v
ผลลัพธ์ตัวอย่าง
PHP 7.0.7-1+donate.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
คุณยังสามารถยืนยันข้อมูล PHP7 ได้ด้วยการสร้างไฟล์ info.php
ใต้ไดเรกทอรี /var/www/html
sudo vi /var/www/html/info.php
วางรหัสต่อไปนี้และเข้าถึงหน้าผ่านทาง http://server_IP-address/info.php
<?php
phpinfo();
?>
อัปเกรดเป็น PHP 7.0 ภายใต้ Nginx Web Server
ส่วนนี้จะพาคุณผ่านกระบวนการอัปเกรดเป็น PHP7.0 และอัปเดต PHP-FPM ด้วยเว็บเซิร์ฟเวอร์ Nginx โดยที่โค้ด PHP ดำเนินการโดยใช้ PHP-FPM< /แข็งแกร่ง>.
เรียกใช้คำสั่งด้านล่างเพื่อติดตั้งแพ็คเกจ PHP-FPM ล่าสุด:
sudo apt-get install php7.0
sudo apt-get install php7.0-fpm
ขณะนี้ PHP ได้รับการอัปเกรดแล้ว แต่ถ้าคุณใช้ MySQL คุณจะต้องดำเนินการคำสั่งต่อไปนี้เพื่ออัปเดตการเชื่อมโยง PHP-MySQL และโมดูลเพิ่มเติมบางส่วนดังที่แสดง:
sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json
ถัดไป คุณต้องเพิ่มคำสั่ง fastcgi_pass
ในไฟล์ /etc/nginx/sites-enabled/default หรือไฟล์ทั้งหมดสำหรับไซต์เสมือนของคุณที่ต้องใช้และรองรับ PHP เนื่องจากเส้นทางของไฟล์ซ็อกเก็ต PHP-FPM ที่ PHP ใช้ในการสื่อสารกับ Nginx มีการเปลี่ยนแปลง
ใช้โปรแกรมแก้ไขที่คุณชื่นชอบและเปิดไฟล์เพื่อแก้ไขดังนี้:
sudo vi /etc/nginx/sites-enabled/default
แก้ไขหรือต่อท้ายดังต่อไปนี้:
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
จากนั้นรีสตาร์ท Nginx และ php-fpm ดังนี้:
sudo service nginx restart
sudo service php7.0-fpm restart
สุดท้ายนี้ คุณสามารถทดสอบได้ว่า PHP ใช้งานได้หรือไม่โดยการตรวจสอบเวอร์ชัน PHP ของคุณก่อน จากนั้นจึงทดสอบกับเว็บเซิร์ฟเวอร์
php -v
คุณได้รับข้อมูลเกี่ยวกับแพ็คเกจ PHP ของคุณโดยการเขียนไฟล์ info.php ขนาดเล็กใต้ไดเร็กทอรี /usr/share/nginx/html/:
sudo vi /usr/share/nginx/html/info.php
ใส่โค้ดนี้ลงในไฟล์ info.php ของคุณ:
<?php
phpinfo();
?>
บันทึกและออกจากไฟล์.
เปิดเว็บเบราว์เซอร์ของคุณ ป้อน http://server_IP-address/info.php
และคุณควรจะเห็นหน้าด้านล่างซึ่งแสดงรายละเอียดเกี่ยวกับแพ็คเกจ PHP ของคุณ
ตอนนี้คุณสามารถใช้ PHP 7.0 บนระบบ Ubuntu 14.04/14.10 ของคุณได้อย่างมีความสุขแล้ว และเราหวังว่าคุณจะพบว่าคู่มือนี้มีประโยชน์
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการอัปเกรด PHP หรือคำถาม เรายินดีรับความคิดเห็นของคุณในส่วนความคิดเห็นด้านล่าง