2020年3月10日 星期二

安裝 PHP 7.x 版本 for CentOS 或 Red Hat

前言概述
PHP 7.x 版本, 已慢慢成為 2018 年以後多數新架網站通用版本, 但在 Linux 各類廠商版(CentOS、RedHat)往往不會是為 PHP 7.x 版, 而是當時發佈當下的 Unix Linux 時, 穩定的 PHP 版本為主, 所目前測試確認狀況下, 疑似多預設版本為 5.4.x 版為主, 所以多數架構者都會去進行更新至 PHP 7.x 版以上, 不過因為預設的 YUM 其實都是沒有可以擁有 PHP 7.x 版以上的套件, 因此只有而外再找尋其他 YUM 源, 或網路上的相關分享記錄文章, Baymax 也不例外, 只是透過 Google 提供的查詢資料來看, 可為是一個抄一個, 多是沒有去理解其意的行為, 所以測試安裝時, 還真的環環卡關, 也讓 Baymax 最終不得不一一拆解行為後, 在依據可理解方式行調整安裝, 此方式即為 Baymax 了解後進行的記錄, 便於後續用及分享.
基本上相信來源原始技術文章來至於 Linuxize 網站, 依據當時原有的技術文章描述, 其實可為簡易的操作, 但應用太多不同套件進行, 所以還是有一點小小的不方便. 小編 Baymax 將依據相同當改過的流程進行記錄.
PS. 此篇文章記錄, 如果有瀏覽發現及應用, 請確認與該記錄的時間, 如記錄的時間超過 1 年以上, 也許該更新源有異常, 所以會造成無法如下程序狀況.

安裝 YUM 擴充套件源
由於原安裝及預設定不的源, 是無 PHP 7.x 存在, 所以必須安裝 YUM 擴充套件源, 可以依據下程序進行.
當案裝完成後, 可在 YUM 安裝源設定目錄(/etc/yum.repos.d/)中發現相關由 remi-*.*.repo 檔名的檔案, 該 remi 擴充源是目前最多安裝著選擇安裝 PHP 7.x 版以上的擴充來源.
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

在安裝 PHP 7 時, 也許依據安裝者需求下, 可能也會安裝相關 PHP 套件, 所以建議安裝 EPEL 的 YUM 擴充套件, 例如測試安裝 curl 時,只有 remi 源是不足夠, 會有找不到或相依檔案不存的狀況出現.

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
安裝需求 PHP 版本.
在預設的狀況下, remi 的 YUM 擴充套件設定檔雖然已建立, 但在設定檔中其是它是發啟用的設定檔案, 如果要去修改它, 又稍稍覺得麻煩, 所以在 YUM 的下達指令方法, 額外追加一參數「--enablerepo=YUM repo File Name」, 直接擉發安裝.如下操作行為動作.
yum install --enablerepo=remi-php72 php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-fpm php-mcrypt php-zip php-devel php-memcache php-intl php-imap curl curl-devel

PS. 在以上安裝的 PHP 套件, 為 Bayamx 在進行開發 PHP 時, 所需的指定原件, 請依個人需求下達安裝即可.

那可能會發現到「--enablerepo=」中的值, 如何而來, 其實可以透過以下指令即可查詢目前主機中所有的套件庫, 查詢出來呈現的由左至右分別一一欄位為 YUM 擴充源名、YUM 擴充源簡易說明、YUM 擴充是否為預設啟用狀態(enable | disabled).

yum repolist all

所以值即為「YUM 擴充源名」, 在網路可查相同安裝, 是在執行前進改變這 PHP 擴充套件 YUM 的設定的預設啟用狀態, 可以還需另要安裝 yum-utils 套件, 在各廠商版的 Unix Linux 的預設 YUM 不會安裝此套件, 所以依據網路相同安裝程序裡執行如下指令即會無效. Baymax 也覺麻煩, 不如直接在使用 YUM 指令中下達指定來源.

yum-config-manager --enable remi-php72

PS.那為什麼 EPEL 不需要像 remi 的執行方法, 其實 Baymax 也無法代表兩來源發表什麼, 只是個人觀點, EPEL 已是行運多年, 多數 Unix Linux 系統管理者, 在透過 YUM 進行安裝, 為避免造成相依檔案問題下, 多數都會先行安裝 EPEL 源, 並且 EPEL 源, 雖然一直都是自由分享, 但也一直有許多自由維護者共同維護 EPEL , 使得該源一直備受應用, 不過該源往往不會有最新主套件, 如果 PHP 7.x 版, 它雖然沒有主套件, 可以卻有相依套件, 可做為補充安裝 PHP 7.x 時, 確實有少的相依套件時可應用, 因此 EPEL 在所提供的 repo 檔案, 預設就是啟用.
而源 ermi 源雖然在目前是熱門安裝 PHP 7.x 的 YUM , 可是是否會像 EPEL 一樣歷久不衰, 在 Baymax 的經歷上, 往往最多不超過五年, 可能這源就對會失連, 又或是改成其他用途及不開放.

測試文章

1 of 2 2 of 2 1 of 3 2 of 3 3 of 3