跳至主要內容
問題與解答
PHP 版本升級要注意什麼?

PHP 版本升級要注意什麼?

問:
PHP 版本一定要升級嗎? 舊版 PHP 有什麼風險? 升級前要檢查什麼? 升級後出現 502 錯誤
答:

版本的生命週期

PHP 的每個主要版本大致遵循固定的支援週期:約兩年的主動支援(修正一般錯誤與安全性問題),接著約一年的安全性支援(僅修正安全問題),之後停止維護。

換句話說,一個版本從發布到完全停止支援,大約三年。

實際的日期會依版本而異,建議直接查閱官方的支援時程表,不要憑印象判斷。

為什麼不能停在舊版

一、安全風險

停止支援後,即使發現新的安全漏洞也不會再有官方修補。這與網站系統或外掛停止維護是同樣的問題。

更麻煩的是:漏洞公開之後,未更新的環境反而更容易成為自動化攻擊的目標。詳見更新與弱點管理

二、主機商會強制淘汰

多數主機商不會無限期提供舊版本。當主機商公告停止支援某個版本時,你可能只有數週的時間處理。

臨時被迫升級的風險,遠高於有計畫的升級。

三、效能差異明顯

PHP 7 之後每一版都有效能改善。從很舊的版本升上來,通常能得到可觀的執行效率提升,而且不需要改任何程式碼。

四、套件不再支援

第三方套件會逐步放棄對舊版本的支援。停在舊版意味著無法使用新版套件,連帶也拿不到它們的安全修補。

升級前的相容性檢查

一、確認目前的版本與環境

php -v
php -m          # 已載入的擴充套件
php --ini       # 設定檔位置

注意命令列與網頁環境可能使用不同的設定檔——透過網頁執行 phpinfo() 確認實際生效的版本與設定。

二、用靜態分析工具掃描

有專門檢測版本相容性的工具,可以在不執行程式的情況下找出可能有問題的語法。

常見的做法是先掃描一輪,把明確的問題列成清單,再逐項處理。

三、檢查擴充套件

某些擴充套件在新版可能已被移除或改名。升級前確認:

  • 目前載入的擴充在新版是否仍存在
  • 是否有替代方案
  • 第三方套件的相容版本

四、檢查第三方套件

若使用套件管理工具,可先在測試環境嘗試更新,確認相依關係是否能解決。

升級的標準流程

  1. 完整備份——程式碼與資料庫
  2. 建立測試環境——與正式環境相同的版本與設定
  3. 在測試環境升級並開啟完整的錯誤記錄
  4. 逐一走過主要功能——前台、後台、表單、金流、排程
  5. 檢視錯誤日誌——包含警告與棄用通知
  6. 修正問題後重複測試
  7. 正式環境升級,選在流量低的時段
  8. 升級後持續觀察數日的日誌

第五步不要只看致命錯誤

棄用通知(Deprecated)是下一版的致命錯誤。 現在忽略,下次升級就會爆掉。

建議在測試環境設定:

error_reporting = E_ALL
display_errors = Off
log_errors = On

這樣所有問題都會進日誌,但不會顯示在畫面上。

跨越多個版本的升級

如果從很舊的版本升級(例如 5.6 或 7.0),建議分階段進行,而不是一次跳到最新。

理由是:每一版的破壞性變更不同,一次跳多版時,錯誤訊息會混在一起難以判斷來源。

分階段的做法是每次升一個主要版本,確認穩定後再進行下一階段。

升級後常見的狀況

症狀常見原因
502 錯誤PHP-FPM 的 socket 路徑改變,網頁伺服器設定未同步
白畫面致命錯誤但未顯示,需查日誌
部分功能失效擴充套件未安裝或已移除
大量警告舊寫法在新版被限縮
設定失效php.ini 未沿用,或路徑改變

第一項最常見。 升級後務必確認網頁伺服器設定中的 socket 路徑,見Nginx 與 Apache 的疑難排解

把版本升級排入常態工作

建議的節奏:

  • 每年檢視一次目前使用的版本與其支援狀態
  • 在進入安全性支援階段時就開始規劃升級,而不是等到完全停止支援
  • 把版本升級的責任歸屬寫進維護合約——主機商、廠商還是自己

責任歸屬常常沒有講清楚,結果各方都以為是別人在負責。

本文的設定與語法以 PHP 8.x 為例,實際的參數、預設值與支援狀態可能因版本與發行版而異。各版本的支援時程請以 PHP 官方公告為準。套用前請先在測試環境驗證,並確實備份原設定檔。

發表於2026-08-05   更新於2026-08-20
免費諮詢 · 1 個工作天內回覆

準備好讓網站 開始幫你帶生意了嗎?

不論是要做新網站、救舊網站,還是只想先聊聊方向——先諮詢,不用先付錢,我們照實給你建議。

1 個工作天回覆免費諮詢與報價費用白紙黑字26 年找得到人
免費諮詢
免費諮詢 LINE諮詢 03-4681000 臉書傳訊
免費諮詢 LINE諮詢 03-4681000 臉書傳訊
免費諮詢
免費諮詢 LINE諮詢 03-4681000 臉書傳訊
免費諮詢 LINE諮詢 03-4681000 臉書傳訊