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