ติดตั้ง PHP 7 บน CentOS 7

ด้วยประสิทธิภาพในการทำงาน และคุณสมบัติของภาษาที่เพิ่มมากขึ้น แล้วก็ออกเวอร์ชันใหม่นี้ได้มาสักระยะเวลานึงแล้ว น่าจะได้เวลาเปลี่ยนมาทดลองใช้ PHP 7 กัน

มาดูวิธีการติดตั้ง PHP 7 บน CentOS 7 ซึ่งจะใช้ yum ติดตั้งแพ็คเกจจาก repo ที่ชื่อ webtatic

แพ็คเกจ php ที่มากับ CentOS 7 นั้น เป็นเวอร์ชันแค่ 5.4 จำเป็นต้องติดตั้ง repo เพิ่มเติม

ลองใช้คำสั่ง yum info เพื่อดูข้อมูลแพ็คเกจ php ที่มีอยู่ใน repo ดีฟอลต์ หลังการติดตั้ง

[dev@centos-7 ~]$ yum info php
...
Available Packages
Name    : php
Arch    : x86_64
Version : 5.4.16
Release : 36.1.el7_2.1
Size    : 1.4 M
Repo    : updates/7/x86_64
Summary : PHP scripting language for creating dynamic web sites
 ...

มีหลาย repo ที่มีแพ็คเกจ php เวอร์ชันใหม่ๆ สำหรับติดตั้งบน CentOS 7  ในที่นี้ขอเลือกใช้ repo ชื่อ webtatic

ก่อนติดตั้ง repo ของ webtatic ต้องติดตั้งแพ็คเกจชื่อ epel-release ก่อน

ใช้คำสั่ง sudo yum ระบุออปชัน install ตามด้วยชื่อแพ็คเกจ epel-release ที่ต้องการติดตั้ง

[dev@centos-7 ~]$ sudo yum install epel-release

เข้าเว็บ https://webtatic.com/projects/yum-repository/ เพื่อดาวน์โหลด GPG Key ของ webtatic มาติดตั้ง เพื่อใช้ตรวจสอบความถูกต้องของแพ็คเกจที่ดาวน์โหลดมาติดตั้ง

สำหรับ CentOS 7 ให้คลิกลิงก์ Webtatic EL 7

ตัวอย่างไฟล์ GPG Key ของ webtatic สำหรับติดตั้งบน CentOS 7

[dev@centos-7 ~]$ cat RPM-GPG-KEY-webtatic-el7
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

mQINBFOch44BEADUQkO69WbI65GuTf7e/PxkPMONyyjeV3wZjz1qHtDbryzQmoN9
CJg4xLUd/Dd03peNRQJ7RL/l2qsCu1Mb7zSTqaDdExRGyweKw6mIGBumzvBBRXPw
97ezIEIiEmq3ZUKFGBSDU3VQI4Zzndn/NgSOa03tWn2VlrTyYsMHm07839OGn6bD
CdnxlzAv2Z6FxYKomo2jMNPQ9vyJ6h3dSUghFhAkZPlkfLPAdBxuFVnn3oyAElDa
F8G19BfRywg7tLQRE7aSuX9E7VqJo0QmZPqwy/oijb9NSEyDg9lO+y/naebX67NJ
L51+RdAXWBxAk3FtSANTz9v3LgszCTDpeSLgAz2zvwsAyuI/GbF0qPhv0QPsnQ+9
ipbZoRTVo6zqBSITdK4kKs9WQXwYq40KzFFcL0d/fruYwCIAkOpBKJPCRYcX2rWj
usbuXBei9bB6aGFo5txLHoACpBh9eR4RDkEtcFrfnCJBWGs/JleyxFoL+jn4F+Nc
V73zWuSaYBmc7AMsE/3nu4iEOvYMDJB6KG7Vqz++ZIM2jjuyT4ujATpJlzr2SyIh
LlKhOLEv8sHZfqjzuN8eStycbSTm6EWQLR5R2oZODgI29hMk2C04JQ26+WjtJnr4
U43bPgh39qTkXwjU+5kCb0D5YixIcvMFsTm4i2bEBBvD+0i0BU2eHbRMMwARAQAB
tCBXZWJ0YXRpYyBFTDcgPHJwbXNAd2VidGF0aWMuY29tPokCOQQTAQIAIwUCU5yH
jgIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEOh/0jZi50yl0HQQAJzN
8/eq1aN38Uk/x0STbbcdmn4vKkYYP3asrz7LWWU6IPacEc4LDkpc/YumzllE3suw
/wISvg7G4hZohQIdnCOoqkZo7OTUbHKkDJZykhqOI8Fs+6Tc2UQnLA3+uTHthKeF
JBjiRD6LxwSdoPulHDFBEPNOr1gqo3bHS40PxjxX3kFYnv8CR59MXcOLiy3aaVhA
Szj+BHhtDQ95xCxW2Z0jpHJ3F5fM9RAl5kR1hjtvvXjq8DbLn8HjHfJyvitSKMoI
jBAl32er5nrattBAKgnvGNA+CRR7b5VuOvHbl/xih4GpSKxCjkRFjwbnV0JYOXcf
Q9C2Y2750qlRU1hTcPr7Suc/dK7lgzuCEtLIzwMp+22OvF0LLV5FCAGIr3MErC5S
ZZBwH7V44AUpvWJgO6+ral3Yn3BHjPazZu52Nj1A9PX3D+7M2iVWGmyADAS5pFbt
8RnOzEzTRqKVL37K1C8gaxkx1j8pNDdjTSk0JZeCcyi3dsPTe+wsdbfude1jzD8r
XUUW6y4OjQfWknGJpvQ7bfYkoYvINCWqdwUgaOGmrQ8omkeO4AjHsJ41/elz5FN6
yG86FITDM4P64H8PBSCkFUYaYXrnWHWftjGcrGF6cFjZGLDh/pWL0vBgB7u+LoMa
EFPgVyg6CysBrTAT061QVX9O1bJTtxXAcG2vr/kv
=D3Nr
-----END PGP PUBLIC KEY BLOCK-----

ใช้คำสั่ง sudo rpm ระบุออปชัน –import ตามด้วยชื่อไฟล์ GPG Key เพื่อติดตั้ง GPG KEY เข้าไปในฐานข้อมูลของ yum บนเครื่อง

[dev@centos-7 ~]$ sudo rpm --import RPM-GPG-KEY-webtatic-el7

ใช้คำสั่ง sudo rpm ระบุออปชัน -Uvh ตามด้วยชื่อ url ที่เก็บชื่อไฟล์ rpm ที่ใช้ในการติดตั้ง repo ของ webtatic

[dev@centos-7 ~]$ sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Retrieving https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Preparing... ################################# [100%]
Updating / installing...
   1:webtatic-release-7-3 ################################# [100%]

หลัง rpm ติดตั้ง webtatic-release.rpm เสร็จเรียบร้อยแล้ว ลองใช้ yum list ดูชื่อแพ็คเกจ PHP ที่อยู่ใน repo ของ webtatic

[dev@centos-7 ~]$ yum list
...
php54w.x86_64 5.4.45-2.w7 webtatic
php54w-cli.x86_64 5.4.45-2.w7 webtatic
php54w-common.x86_64 5.4.45-2.w7 webtatic
...
php55w.x86_64 5.5.38-1.w7 webtatic
php55w-cli.x86_64 5.5.38-1.w7 webtatic
php55w-common.x86_64 5.5.38-1.w7 webtatic
...
php56w.x86_64 5.6.24-1.w7 webtatic
php56w-cli.x86_64 5.6.24-1.w7 webtatic
php56w-common.x86_64 5.6.24-1.w7 webtatic
...
php70w.x86_64 7.0.9-1.w7 webtatic
php70w-cli.x86_64 7.0.9-1.w7 webtatic
php70w-common.x86_64 7.0.9-1.w7 webtatic
...

จะมีทั้ง php54w, php55w, php56w, php70w ให้เราเลือกติดตั้งได้

ในที่นี้เราจะติดตั้ง PHP 7.0 เพื่อทดลองรัน php ในรูปแบบคำสั่ง (command line) เราจะติดตั้งแพ็คเกจชื่อ php70w-cli

หมายเหตุ หากใช้ yum ติดตั้งชื่อแพ็คเกจ php70w (ไม่มี -cli) เลย จะเป็นการติดตั้ง php เพื่อใช้รันเป็นโมดูลเว็บโปรแกรมเพื่อทำงานร่วมกับเว็บเซิร์ฟเวอร์ Apache (httpd)

[dev@centos-7 ~]$ sudo yum install php70w-cli
...

Dependencies Resolved

===================================================================
 Package            Arch      Version        Repository     Size
===================================================================
Installing:
 php70w-cli         x86_64    7.0.9-1.w7     webtatic       2.9 M
Installing for dependencies
 php70w-common      x86_64    7.0.9-1.w7     webtatic       1.2 M
 
Transaction Summary
===================================================================
 Install 1 Package (+1 Dependent package)

Total download size: 4.0 M
 Installed size: 18 M
 Is this ok [y/d/N]: y
 ...

การติดตั้งแพ็คเกจ php70w-cli จะติดตั้ง php70w-common ที่มีไฟล์จำเป็นในการรัน php ด้วย

หลัง yum ติดตั้งแพ็คเกจ php70w-cli แล้ว จะสามารถรันคำสั่ง php ได้

[dev@centos-7 ~]$ php -v
PHP 7.0.9 (cli) (built: Jul 21 2016 15:42:36) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

ลองรัน php ระบุออปชัน -m เพื่อดูโมดูลของ php ที่เรียกใช้งานได้

[dev@centos-7 ~]$ php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
json
libxml
openssl
pcntl
pcre
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
tokenizer
xml
zip
zlib

[Zend Modules]

ทดลองสร้างไดเรกทอรีและไฟล์ php สำหรับทดสอบ

[dev@centos-7 ~]$ mkdir web
[dev@centos-7 ~]$ cd web/
[dev@centos-7 web]$

[dev@centos-7 web]$ vi index.php
<?php

phpinfo();

เราสามารถรันคำสั่ง php ระบุออปชัน -S เพื่อรันเป็นเว็บเซิร์ฟเวอร์สำหรับการทดสอบได้

โดยระบุ IP ของเครื่อง และพอร์ตของเว็บที่ต้องการรัน ตัวอย่างเช่น

[dev@centos-7 web]$ php -S 192.168.56.107:8888
PHP 7.0.9 Development Server started at Fri Jul 29 13:35:30 2016
Listening on http://192.168.56.107:8888
Document root is /home/dev/web
Press Ctrl-C to quit.

ทดสอบจาก browser โดยระบุ address เป็น http://192.168.56.107:8888

ตัวอย่างหน้าเว็บที่แสดง

php-7-on-centos-7

ข้อมูลอ้างอิง

Leave a Reply