HOWTO · PHP
在 CentOS 上將 PHP 7.x 更新到 7.4
CentOS 7 上 PHP 7.4 升級方式的歷史概述,涵蓋事前準備、版本驗證與應用程式相容性;本文不提供可直接執行的升級步驟。
本頁內容
本文介紹將 CentOS 7 系統從 PHP 7.x 移往 PHP 7.4 的歷史做法,涵蓋事前準備、Remi 儲存庫、Software Collections、原始碼建置與驗證。CentOS 7 和 PHP 7.4 都是舊版;本文並非建議目前部署這些版本,也不表示任何特定儲存庫或套件來源目前仍支援它們。規劃變更前,請確認實際作業系統與應用程式的生命週期及相容性需求。
目前提供的資料無法驗證特定 CentOS 7 儲存庫設定、套件組合或安裝順序。請將下列方法介紹視為比較歷史做法的參考,而非可直接複製執行的升級步驟。若要變更實際系統,請查閱適用於該作業系統版本、儲存庫狀態、PHP 建置方式及網頁伺服器整合方式的權威文件。
事前準備與備份
變更 PHP 前,請確認要管理的是哪個系統與 PHP 安裝、應用程式如何載入 PHP,以及它仰賴哪些設定檔和擴充功能。你需要具備變更流程所要求的帳戶權限,並準備經過測試的復原計畫。備份只有在包含相關 PHP 設定與應用程式資料,而且你知道如何還原時,才真正有用。
記錄目前的 CLI 版本、執行檔位置、載入的設定檔及擴充功能。命令 php -v 會顯示目前 shell 的 PATH 找到的 PHP 命令版本;它無法指出每個網頁伺服器或應用程式程序使用的版本。請將這份清單與變更紀錄一併保存,以便比較變更結果,並在需要時有計畫地回復。
選擇方法前,請確認應用程式及其相依項目是否支援 PHP 7.4。先在符合正式環境狀況的測試環境演練變更,並納入排程工作與網頁伺服器整合。不要使用萬用字元移除套件;請先確認現有設定實際包含哪些套件,以及移除它們會如何影響其他應用程式。
使用 Remi 儲存庫更新 PHP
Remi 儲存庫曾是 Enterprise Linux 系統取得 PHP 建置版本的一種套件管理途徑。採用儲存庫升級時,管理員會先確認儲存庫版本與 PHP 串流是否適用於主機,再選擇所需套件,並規劃如何取代或更新現有安裝。
不要只根據這份概述,就將通用的儲存庫安裝命令或串流名稱用於 CentOS 7 系統。正確的儲存庫設定、套件名稱、可用建置版本及相依性影響,都取決於主機與儲存庫狀態;本文沒有驗證這些資訊。核准變更前,請查閱適用的儲存庫文件,並檢查套件管理工具提出的交易計畫。請保留先前的設定及經測試的復原方式。
變更套件後,請驗證 CLI 執行檔,並另外確認應用程式使用的執行環境。CLI 版本檢查本身無法證明 PHP-FPM、Apache 模組或其他網頁服務程序使用相同的建置版本。服務重新載入或重新啟動方式取決於所選的整合方式及本機設定;請依照部署文件操作,不要套用一體適用的命令。
使用 Software Collections 安裝 PHP 7.4
Software Collections(SCL)曾提供一種方式,讓部分 Enterprise Linux 系統使用替代的軟體集合。若要比較替代 PHP 環境與全系統套件變更,可以研究這種方式;但本文無法驗證特定 CentOS 7 安裝是否提供 PHP 7.4 集合或特定套件名稱。
選擇這種方式前,請查閱適用於該主機的文件,確認集合是否可用及其生命週期。了解互動式命令、排程工作及網頁伺服器如何選用其執行檔與設定。不要假設安裝集合後就會自動啟用、隔離所有相依項目,或能讓兩個版本安全地服務同一個應用程式。請在測試環境中測試實際應用程式及部署設定。
從原始碼編譯 PHP 7.4
從原始碼建置 PHP,曾是管理員控制建置設定的另一種歷史做法。這需要相容的編譯器工具鏈、程式庫、建置選項、設定檔,以及經過規劃的安裝配置。所需項目與選項取決於確切的 PHP 原始碼版本及主機環境。
提供的資料沒有驗證任何 PHP 7.4 原始碼建置流程,因此本文沒有可供複製的命令或設定旗標。請查閱適用於確切原始碼版本與作業系統的文件,規劃如何維護及更新建置成果,並在使用前測試產生的二進位檔與應用程式整合方式。自訂建置也需要明確的管理責任及復原計畫;它不會自動取代系統 PHP,也不會自動設定網頁伺服器使用它。
驗證安裝並排除問題
檢查 CLI 安裝時,請明確指定 PHP 執行檔,並記錄其路徑與版本。shell 查詢命令 command -v php 可顯示目前 shell 解析到哪個 php 執行檔。接著,請透過應用程式本身的部署與監控流程,檢查它使用的執行環境。CLI 檢查成功,並不能證明網頁請求、PHP-FPM 集區或排程工作使用相同版本。
執行以下範例:
本節中的程式碼以及顯示的標籤或輸出仍為英文。
<?php
echo "PHP CLI is available\n";
這段簡短的 PHP 程式示範 PHP 程序輸出的內容。它不會回報已安裝的版本,也無法證明網頁伺服器使用相同的 PHP 執行環境。資料中沒有這個範例的執行結果,因此本文不會列出實際觀察到的輸出。
如果回報的 CLI 版本不如預期,請檢查執行檔路徑與 shell 的 PATH,再與預期的套件或建置配置比較。如果命令列與網頁應用程式的行為不同,請檢查網頁伺服器或 PHP-FPM 設定,以及實際處理請求的程序。重新載入或重新啟動服務前,請確認部署使用的服務及設定,並依照其變更流程操作。
常見問題
如何查看目前的 PHP 版本?
執行 php -v,即可顯示目前 shell 解析到的 CLI 執行檔版本。使用 command -v php 查看其路徑。這些檢查無法判斷網頁伺服器或其他程序使用哪個 PHP 建置版本。
在正式環境伺服器上升級 PHP 安全嗎?
版本變更可能影響應用程式行為及相依項目。安排正式環境變更前,請在測試環境驗證計畫中的變更、備份相關設定與資料,並準備經測試的復原流程。現有資料無法證明任何特定升級順序適用於你的系統或能確保安全。
升級到 PHP 7.4 有哪些好處?
相較於較早期的 PHP 7 版本,PHP 7.4 引入了語言及執行階段變更。這些變更是否有助於特定應用程式,取決於其程式碼、相依項目、工作負載及支援需求。PHP 7.4 是歷史版本,請勿將它視為目前的安全性或支援建議。
我可以在 CentOS 上執行多個 PHP 版本嗎?
這取決於特定系統可用的儲存庫、軟體集合、建置配置及網頁伺服器整合方式。SCL 與自訂建置曾是可供研究的歷史做法,但它們的存在不代表一定能並行執行多個版本,也不保證應用程式彼此隔離。依賴多個版本前,請先確認受支援的設定方式。
如果我的應用程式與 PHP 7.4 不相容,該怎麼辦?
先在測試中找出不相容的程式碼或相依項目,再查閱其維護者提供的相容性指引。你可能需要更新應用程式或相依項目、改用受支援的執行環境,或暫緩變更並規劃修正工作。不要假設在正式環境中繼續使用不受支援的執行環境是長期可行的方案。
結論
對於 CentOS 7 系統,Remi 儲存庫、Software Collections 及從原始碼編譯,都是研究 PHP 7.4 變更時可比較的歷史做法。現有資料沒有驗證特定版本的命令、套件或建置設定,因此請依照適用於確切環境的權威文件逐一確認。盤點目前的 CLI 與應用程式執行環境,在測試環境驗證相容性及復原流程,並將網頁服務設定與命令列版本分開檢查。