[How to] วิธีติดตั้ง php7 บน Linux Debian 8 (Jessie)

ภาษา php หรือ Personal Home Page นั้น เป็นที่รู้จัก และนิยมใช้ในการพัฒนา Webpage มาอย่างยาวนาน และ Major version ที่น่าจะคุ้นเคยกันดี ก็คือ php5 ซึ่งปัจจุบัน อยู่ที่เวอร์ชั่น 5.6

php-logo_how-to-install-on-debian8

แต่เมื่อไม่นานนี้ php ได้ออกเวอร์ชั่น 7.0.0 Alpha 1 ออกมาเมื่อเดือนมิถุนายน และออกเวอร์ชั่นใหม่ ๆ ทุก 2 สัปดาห์ จนถึงตอนนี้อยู่ที่เวอร์ชั่น 7.0.0 Beta 3 แล้ว และมีแผนที่จะออกเวอร์ชั่น 7.0.0 Final ในวันที่ 12 พฤศจิกายน ที่จะถึงนี้ (ดูรายละเอียดได้จากตาราง Timetable)

ที่ php ข้ามจาก Major version 5 ไปเป็น 7 เรื่องจาก php6 ที่เริ่มพัฒนามาตั้งแต่เมื่อ 10 ปีที่แล้ว ได้ถูกยกเลิกไป อ่านรายละเอียดได้ที่ Wikipedia

ด้วยความอยากลอง จึงได้หาวิธีนำ php7 มาติดตั้งบน Linux Debian 8 ซึ่งขั้นตอนติดตั้งก็ยุ่งยากพอสมควรเลย ก็เลยนำมาเขียนบทความซะเลย โดยในบทความนี้ อาจจะไม่ได้อธิบายในบางจุดอย่างละเอียด เนื่องจากผมเอง ก็ไม่ได้เชี่ยวชาญ Linux มากนัก เอาเป็นว่า เริ่มกันเลยดีกว่า…

ก่อนอื่นเลย ใน Linux ต้องทำการติดตั้ง Web Server ก่อน โดยที่ php7 นั้น รองรับทั้ง Apache และ nginx ซึ่งใน Server ผมได้ทำการติดตั้ง nginx อยู่แล้ว ทั้งสองตัว สามารถติดตั้งผ่าน apt-get ได้เลย

 

Download php7

เมื่อพร้อมแล้ว ทำการ Login ด้วย root แล้วทำการสร้าง Directory /opt/php-7.0.0 ดังนี้

แล้วไปที่ Directory /usr/local/src

ทำการ Download Source Code ของ php7 จากหน้า Download Page ของเว็บ php.net ด้วย wget โดยไฟล์ Source Code นั้น คือไฟล์นามสกุล bz2 นั่นเอง

ตัวอย่างคำสั่งต่อไปนี้ จะเป็นการ Download Source Code เวอร์ชั่น 7.0.0 Beta 3

Download php 7 Beta 3 ด้วย wget
Download php 7 Beta 3 ด้วย wget

เมื่อ Download เรียบร้อย ทำการ Extract ไฟล์ ด้วยคำสั่งดังนี้

Extract ไฟล์ออกมา จะได้ 1 Directory
Extract ไฟล์ออกมา จะได้ 1 Directory

เราจะได้ Directory มาใหม่ ชื่อเดียวกับไฟล์ ดังรูปด้านบน

 

Compile php7

เนื่องจากสิ่งที่เราทำการ Download มานั้น เป็นเพียง Source Code จะต้องทำการ Compile ซะก่อน โดยเราจะต้องติดตั้ง Package ต่าง ๆ ที่จะใช้ในการ Compile โดยจะใช้คำสั่ง ดังนี้

ติดตั้ง Package ต่าง ๆ ที่จะใช้ในการ Compile
ติดตั้ง Package ต่าง ๆ ที่จะใช้ในการ Compile

แล้วทำการ Symbolic Link ไฟล์ libc-client.a ดังนี้

ทำ Symbolic Link ไฟล์ libc-client.a
ทำ Symbolic Link ไฟล์ libc-client.a

เข้าไปยัง Directory ของ php7 ที่ Download มา

แล้วทำการ Config ให้กับ php ว่าจะทำการ Compile อย่างไร ดังนี้

Config สำหรับการ Compile php7
Config สำหรับการ Compile php7

เมื่อทำการ Config เรียบร้อย
เมื่อทำการ Config เรียบร้อย

ต่อด้วยการ Build หรือ Compile ด้วยคำสั่ง make ซึ่งในขั้นตอนนี้ จะใช้เวลาค่อนข้างนาน

Compile!! ด้วยคำสั่ง make
Compile!! ด้วยคำสั่ง make

เมื่อ Compile เรียบร้อย จะมีข้อความแจ้งว่า อย่าลืมทดสอบด้วยคำสั่ง make test ซึ่งการสั่งทดสอบ จะกินเวลาค่อนข้างนาน และเมื่อทดสอบเรียบร้อย จะมีรายงานแจ้งให้ทราบว่า พบปัญหาอยู่กี่จุด พร้อมทั้งให้เราระบุ email ของเรา เพื่อทำการส่งรายงานให้กับทีมงาน php (ก็ช่วยแจ้งเค้าหน่อย)

เมื่อ Compile php7 เรียบร้อย
เมื่อ Compile php7 เรียบร้อย

ซึ่งผมจะขอข้ามการทดสอบไปก่อน (ตอนติดตั้ง php7 Beta 2 ได้เคยทดสอบ และส่งรายงานปัญหาไปแล้ว)

 

Install php7

หลังจากทำการ Build หรือ Compile (และทำการทดสอบแล้ว) ถึงเวลาทำการติดตั้งกันแล้วล่ะ โดยจะใช้คำสั่ง make install ดังนี้

ติดตั้ง php7
ติดตั้ง php7

เมื่อติดตั้ง php7 เรียบร้อย
เมื่อติดตั้ง php7 เรียบร้อย

แล้วทำการ Copy ไฟล์ Config ทั้งหมด 3 ไฟล์ โดย 1 ไฟล์ จาก Directory ที่ Extract ออกมา

และอีก 2 ไฟล์ ที่ /opt/php-7.0.0/etc

Copy config file จากไฟล์ที่ php เตรียมไว้ให้
Copy config file จากไฟล์ที่ php เตรียมไว้ให้

แล้วทำการเปิดไฟล์ php-fpm.conf ขึ้นมาแก้ไข ด้วย Text Editor ตัวไหนก็ได้ (ในตัวอย่างจะใช้โปรแกรม nano) โดยนำ Comment (อักษรตัว ;) ที่หน้าบรรทัด pid ออก เป็นดังนี้

แก้ไขไฟล์ php-fpm.conf
แก้ไขไฟล์ php-fpm.conf

แล้วทำการแก้ไขไฟล์ www.conf ที่อยู่ใน Directory php-fpm.d โดยจะเป็นการกำหนด Port ของ php-fpm ด้านล่างนี้จะเป็น Default config สามารถแก้ไขได้ตามต้องการ ซึ่งผมจะใช้ค่า Default นี่ล่ะ

แก้ไขไฟล์ php-fpm.d/www.conf
แก้ไขไฟล์ php-fpm.d/www.conf

 

Config Service

เปลี่ยน Path ไปที่ /etc/init.d

แล้วทำการสร้างไฟล์ php-7.0.0-fpm ขึ้นมา

สร้างไฟล์ php-7.0.0-fpm
สร้างไฟล์ php-7.0.0-fpm

แล้วนำ Code ต่อไปนี้ไปใส่ แล้วเซฟให้เรียบร้อย

แล้วทำการเปลี่ยน Permission ให้สามารถรันได้

ต่อด้วยการสร้าง Link ให้ไฟล์ php-7.0.0-fpm เริ่มทำงานเมื่อเริ่มระบบ

แล้วสร้างไฟล์ php-7.0.0-fpm.service ไว้ที่ /lib/systemd/system/

สร้างไฟล์ /lib/systemd/system/php-7.0.0-fpm.service
สร้างไฟล์ /lib/systemd/system/php-7.0.0-fpm.service

นำ Code ด้านล่างนี้ไปใส่ แล้วเซฟให้เรียบร้อย

เสร็จแล้วทำการ Reload systemd ด้วยคำสั่งนี้

 

Start php7

ทำการ Start ด้วยคำสั่งดังนี้

จะเห็นข้อความว่า Starting php-fpm done เป็นอันเรียบร้อยแล้ว

และทำการ Start Service ด้วย ดังนี้

Start php7
Start php7

 

Enable Zend OPcache

สำหรับการเปิดใช้งาน Zend OPcache นั้น ให้เราไปแก้ไขไฟล์ php.ini ซึ่งอยู่ที่ Path /opt/php-7.0.0/lib

แก้ไขไฟล์ php.ini ที่ Path /opt/php-7.0.0/lib
แก้ไขไฟล์ php.ini ที่ Path /opt/php-7.0.0/lib

โดยการเพิ่มบรรทัดต่อไปนี้ลงไป

ตรวจสอบ Version ของ php ได้จากคำสั่ง php -v ที่ Path /opt/php-7.0.0/bin ดังนี้

ตรวจสอบ Version ของ php
ตรวจสอบ Version ของ php

จากรูปด้านบน มีการตรวจสอบ 2 ครั้ง ครั้งแรกคือก่อนทำการเปิดใช้งาน Zend OPcache ส่วนครั้งหลังคือหลังจากเปิดใช้งาน Zend OPcache เรียบร้อยแล้ว

และเมื่อทดสอบโดยการเขียนคำสั่ง phpinfo ดังต่อไปนี้

แล้วลองเปิดผ่าน Browser ดู ก็จะแสดงผลให้เห็นเป็นตารางรายละเอียดต่าง ๆ เช่นเดียวกับ php5 นั่นเอง

phpinfo บน php7
phpinfo บน php7

 

จบแล้วครับ หวังว่าบทความนี้ จะช่วยให้ Admin ทั้งหลาย ติดตั้ง php7 บน Linux Debian กันได้นะครับ

 

อ้างอิง – How to install PHP 7 (PHP-FPM & FastCGI) for ISPConfig 3 on Debian 8 (Jessie)

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.