關於在linux下php版本升級的問題,在此做一下詳細的說明,對於新手及遇到這方面問題的朋友提供一些幫助,讓大家少走彎路,好了,進入正題:
先說說我的問題:
我原先的Linux系統是CentOS 6.8,安裝的PHP版本為5.3,考慮想給php升級到5.6。采用一下步驟:
配置yum源
追加CentOS 6.8的epel及remi源。
# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 使用yum list命令查看可安裝的包(Packege) # yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
安裝PHP5.6
# yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-gd
查看PHP版本
# php -v PHP 5.6.31 (cli) (built: Jul 6 2017 08:16:47) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans
在這里安裝的版本是PHP5.6.31,細心的用戶可能已經發現ZendGuardLoader變成Zend OPcahe了。對從PHP5.5開始PHP代碼緩存從APC變成了Zend OPcache了。
remi源安裝錯誤如何解決?
在安裝之前,我本打算安裝一個較高的php版本,這樣就一步到位了,可是手太快,鍵盤一敲,做了倉庫升級,依次做了如下操作:
# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # yum remove php-common # yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-devel php56w-MySQL php56w-intl php56w-mbstring # service httpd restart # php -v
但是我得到的結果是php被刪除掉了,但是沒有安裝成功,原因是我的源是安裝的版本錯誤,使用了PHP7的源,當我接着下載php5.6的源的時候
# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
報了這樣的錯誤:
Error: xz compression not available
還有這樣的錯誤:
error: Failed dependencies:
epel-release >= 7 is needed by webtatic-release-7-3.noarch
解決方法:只能把epel-release7的源刪除了。
1. 到http://ftp.riken.jp/Linux/fedora/epel/下載epel-release-latest-6.noarch.rpm
2. 卸載epel-release-latest-7.noarch.rpm:
# yum remove epel-release
3. 清空epel目錄:
#rm -rf /var/cache/yum/x86_64/6/epel/
4. 切換到下載目錄下安裝epel6:
rpm -ivh epel-release-latest-6.noarch.rpm
做到這就解決了,接下來就按照文章開頭的步驟做吧。