centos7-featured-image

CentOS 7 安裝特定版本的 PHP

因為這樣那樣,最近伺服器的 PHP 版本打算進一步升級,所以某貓用之前 php5.4升級至php5.6 的方法嘗試升級。

發現那樣會出問題(默

問題出在當 CentOS 7 使用 bash 查詢 php 版本時,會說 php.ini 裡載入某個 module 錯誤,找不到該 module 或是路徑錯誤。

原本以為是因為 php 升級而該 module 沒升級導致的載入錯誤,所以某貓跑去下載對應版本載入⋯⋯哀額還是出現錯誤耶。

查了一下發現大家出現的錯誤都不一樣,暫時無解,於是想辦法找了別的方法更新。恩,這方法就是今天要說的東西啦。

1.前置動作:移除既有的 php

在開始移除前可能會有同學疑惑:如果不移除舊版會怎樣呢?

關於這點某貓嘗試了,恩⋯⋯同時裝 5.6、7.0跟7.1在同一台伺服器上,結果查詢版本時,猜猜看顯示的版本是多少?

嘿嘿,答案是 7.1。

移除既有的 php 版本除了確保安裝不會出錯外,也能確保該台伺服器使用的 php 確實是最後安裝的版本(目前看來多版本共存會使用最新版,至於是否有地方設定,這某貓還不清楚),另外就是用 yum update 時也不會多更新其他不需要的版本。

就是這樣,所以無論是升級還是降級,都記得要先移除既有的版本喔。

要移除當下安裝所有檔案需要兩行指令,確保所有安裝都有移除:

  1. [root@centos7 ~]# yum remove php
  2. [root@centos7 ~]# yum remove php-*

會需要到兩行是因為 php 安裝程式名稱分為 php 與 php-(略) 兩種,而嘗試使用 yum remove php* 又無作用(這還真是微妙),所以某貓決定拆兩行來刪除。

刪除好後,可以使用 php -v 確認是否真的已刪除。刪除成功後,這個查詢版本的指令應該會變這樣:

移除PHP
[圖一]移除PHP

2.查詢可安裝列表

安裝前需要先確認「哪幾個版本有提供安裝」,總不能裝沒提供的版本吧w

  1. [root@centos7 ~]# yum –showduplicates list php | expand

使用這指令能列出所有可提供安裝的 php 版本,某貓測試當下是這樣:

所有可安裝的PHP列表
[圖二]所有可安裝的PHP列表
各位查看版本列表時可能會跟某貓得出的結果不一樣,畢竟 php 是會更新的。

好,確定好可安裝的版本,可以開始安裝了。

3.安裝特定版本

安裝前請先確認要安裝哪個版本(從可安裝列表裡選一個),假設想安裝 php 5.6.32,那可以這樣安裝:

  1. [root@centos7 ~]# yum install php-5.6.32

是的,要安裝特定版本,只要在php後加個中槓線,再加上版本號(記得要寫完整,而不是像5.6或7.1這種,看列表怎麼寫,後面的版本號就怎麼寫)就行了。

假設想安裝的是最新版,那就不需要加上版本號,直接安裝即可:

  1. [root@centos7 ~]# yum install php

如此一來照某貓安裝的時間,最新版應該是 7.1.12,安裝完查詢版本號就是這樣:

[圖三]安裝完的PHP版本
[圖三]安裝完的PHP版本

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s