เนื่องด้วย PHP ที่ติดตั้งมากับ CentOS 6 นั้น มีแค่เวอร์ชั่น 5.3.3 หากต้องการใช้ PHP เวอร์ชั่นใหม่เช่น 5.5 หรือ 5.6 จำเป็นต้องติดตั้งจากแหล่งเว็บไซต์อื่นๆ
เว็บที่เป็นที่นิยมคือ webtatic.com ที่สร้าง (build) แพ็คเกจเวอร์ชั่นใหม่ๆ เช่น MySQL 5.5, PHP 5.4, PHP 5.5, PHP 5.6 เก็บไว้ใน Yum Repository
บทความนี้จะอธิบายการติดตั้ง PHP 5.5 จาก repo ของ webtatic.com
หมายเหตุ เราสามารถใช้วิธีการเดียวกันนี้ เพื่อติดตั้ง PHP เวอร์ชั่นอื่นๆ หรือติดตั้งบน Red Hat หรือ CentOS เวอร์ชั่น 5.x, 7.x ได้เหมือนกัน
ติดตั้ง repo ของ webtatic.com สำหรับ CentOS 6
[root@cent6-php ~]# rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm Retrieving http://mirror.webtatic.com/yum/el6/latest.rpm warning: /var/tmp/rpm-tmp.xZFIVw: Header V4 DSA/SHA1 Signature, key ID cf4c4ff9: NOKEY Preparing... ########################################### [100%] 1:webtatic-release ########################################### [100%]
ดูรายชื่อ repo หลังการติดตั้ง repo ของ webtatic
[root@cent6-php ~]# yum repolist Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.neusoft.edu.cn * extras: mirrors.skyshe.cn * updates: mirrors.skyshe.cn * webtatic: uk.repo.webtatic.com repo id repo name status base CentOS-6 - Base 6,518 extras CentOS-6 - Extras 36 updates CentOS-6 - Updates 530 webtatic Webtatic Repository EL6 - x86_64 381 repolist: 7,465
ตัวอย่างการใช้คำสั่ง yum list เพื่อแสดงรายชื่อแพ็คเกจ rpm ของ PHP เวอร์ชั่น 5.5
[root@cent6-php ~]# yum list | grep php55 php55w.x86_64 5.5.20-1.w6 webtatic php55w-bcmath.x86_64 5.5.20-1.w6 webtatic php55w-cli.x86_64 5.5.20-1.w6 webtatic php55w-common.x86_64 5.5.20-1.w6 webtatic ...
สังเกตว่าแพ็คเกจ rpm ที่มาจาก webtatic จะมีตัวอักษร w อยู่หลังชื่อด้วย
ใช้คำสั่ง yum install ติดตั้ง php55w
[root@cent6-php ~]# yum install php55w
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.neusoft.edu.cn
* extras: mirrors.btte.net
* updates: mirrors.aliyun.com
* webtatic: uk.repo.webtatic.com
Resolving Dependencies
--> Running transaction check
---> Package php55w.x86_64 0:5.5.20-1.w6 will be installed
--> Processing Dependency: php55w-common(x86-64) = 5.5.20-1.w6 for package: php55w-5.5.20-1.w6.x86_64
--> Processing Dependency: php55w-cli(x86-64) = 5.5.20-1.w6 for package: php55w-5.5.20-1.w6.x86_64
--> Processing Dependency: php55w-cli = 5.5.20-1.w6 for package: php55w-5.5.20-1.w6.x86_64
--> Running transaction check
---> Package php55w-cli.x86_64 0:5.5.20-1.w6 will be installed
---> Package php55w-common.x86_64 0:5.5.20-1.w6 will be installed
--> Processing Conflict: php55w-common-5.5.20-1.w6.x86_64 conflicts php-common < 5.5.0 --> Finished Dependency Resolution
Error: php55w-common conflicts with php-common-5.3.3-40.el6_6.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
ขึ้นข้อความ Error ไม่สามารถติดตั้งได้ เพราะไปซ้ำซ้อนกับแพ็คเกจที่ติดตั้งอยู่แล้วคือ php-common (แพ็คเกจที่มากับ CentOS 6)
ต้องลบแพ็คเกจเดิมก่อน
ใช้คำสั่ง rpm ดูแพ็คเกจ php ที่ติดตั้งอยู่แล้ว
[root@cent6-php ~]# rpm -qa | grep php php-common-5.3.3-40.el6_6.x86_64 php-cli-5.3.3-40.el6_6.x86_64 php-5.3.3-40.el6_6.x86_64
ใช้คำสั่ง rpm -e เพื่อลบการติดตั้งแพ็คเกจ
[root@cent6-php ~]# rpm -e php-common php-cli php
ลอง yum ติดตั้ง php55w อีกครั้ง
[root@cent6-php ~]# yum install php55w ... Installed: php55w.x86_64 0:5.5.20-1.w6 Dependency Installed: php55w-cli.x86_64 0:5.5.20-1.w6 php55w-common.x86_64 0:5.5.20-1.w6 Complete!
ดูแพ็คเกจ php ที่ได้จากการติดตั้ง
[root@cent6-php ~]# rpm -qa | grep php php55w-common-5.5.20-1.w6.x86_64 php55w-5.5.20-1.w6.x86_64 php55w-cli-5.5.20-1.w6.x86_64
เวอร์ชั่น php ที่ได้จากการติดตั้งจาก webtatic.com
[root@cent6-php ~]# php -v
PHP 5.5.20 (cli) (built: Dec 20 2014 15:46:42)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
เท่านี้เราก็ได้ใช้ php เวอร์ชั่น 5.5 แล้ว
Thank you!