in

不同PHP版本怎麼選?查看、切換與升級風險一次解析

搞懂PHP版本支援與切換風險,避免網站程式無法運作或遭駭風險

不同PHP版本怎麼選?查看、切換與升級風險一次解析

搞懂PHP版本支援與切換風險,避免網站程式無法運作或遭駭風險

什麼是PHP?為什麼重要?

PHP是一種開放原始碼的多用途腳本語言,可嵌入HTML中執行,尤其適合Web開發,是目前世界上使用率極高的網頁程式語言。

除了可撰寫靜態與動態網頁,PHP也廣泛應用於資料處理、運算、API整合等場景。許多知名網站如 Facebook、Yahoo、Wikipedia 都是以PHP開發。

即使使用者本身是Windows、Mac或Android系統,僅需透過瀏覽器即可瀏覽以PHP撰寫的網頁程式,因其運作邏輯是在伺服器端執行,而非裝置端。

根據 W3TECHS 統計,截至 2021 年,全球約 79% 的網站後端使用 PHP。

目前主機支援的PHP版本

PHP歷經多年版本演進,從早期的PHP2.0到目前(2025)最新版PHP8.4,主機商大多提供「多版本並存」的彈性設定。

  • PHP5 系列:5.1、5.2、5.3、5.4、5.5、5.6
  • PHP7 系列:7.1、7.2、7.3、7.4
  • PHP8 系列:8.0、8.1、8.2、8.3、8.4

不同主機環境所提供的版本支援會有差異,建議選購主機前先確認是否支援您目前使用的 PHP 版本。

目前仍在更新的PHP版本

可參考 PHP 官網所提供的版本支援與更新資訊:

https://www.php.net/supported-versions.php

截至 2025.07.29:

  • PHP 8.1:僅Security Support Until(安全支援)至於 2025 年 12 月 31 日停止更新
  • PHP 8.3 與 8.4:目前仍在 Active Support Until(主動支援)持續更新中

超過支援期限的 PHP 版本將不再獲得安全修補,使用者需特別留意。

如何查詢目前使用的PHP版本

● 方法一:查看主機控制台中的「伺服器資訊」或「PHP 設定」,多數主機後台會顯示預設 PHP 版本。

注意:有些主機支援多版本共存,控制台顯示的可能是預設版本,不一定等同實際執行版本。

● 方法二(建議):使用 phpinfo() 來建立檔案並檢查實際執行的 PHP 環境。

  1. 前往 PHP 官網查詢 phpinfo 函數說明
  2. 開啟虛擬主機的網站根目錄,例如:
    • cPanel:public_html 資料夾
    • Plesk:httpdocs 資料夾

    或放在子網域的對應資料夾。

  3. 建立一個檔案,命名為 info.php,內容如下:
<?php
phpinfo();
?>

✔ 建立完成後,透過瀏覽器輸入網址:

https://您的網域名稱/info.php

下圖為實際範例畫面:

以下為顯示查詢結果的頁面畫面範例:

● 方法三:直接聯繫您的主機代管商,由客服人員協助查詢目前使用的 PHP 版本。

phpinfo與控制台版本不一致?

若您在控制台查到一個版本,而phpinfo查詢結果卻顯示另一個版本,這是常見狀況。

結論是:請以「phpinfo 顯示的版本」為準。

phpinfo 是直接由該網站實際運行的 PHP 環境所回傳,因此資訊最精確。而控制台顯示的是主機預設設定值,若您的網站有額外套用選擇性的 PHP 環境設定(如 CloudLinux 的 Select PHP Version),則 phpinfo 才能反映實際版本。

若您無法變更 PHP 版本或發現設定有誤,請聯繫主機代管商協助 root 權限下切換。

PHP版本太舊怎麼辦?

PHP 的每一版更新都包含安全性修補與相容性調整。

若您目前使用的版本已無官方支援(如 PHP 5.6 或更舊),將面臨以下風險:

  • 無法防堵已知的漏洞與攻擊方式
  • 網站容易被入侵、植入釣魚碼或發送垃圾信
  • 影響網站 SEO 表現與瀏覽者安全信任

您可採取以下處理方式:

  1. 升級網站程式:將程式更新為支援新版 PHP 的架構,包含主程式與外掛。
  2. 若無法立即升級:應盡快針對程式進行安全性加固,例如:
    • 移除危險函數與老舊函式
    • 替換不相容的外掛或模組
  3. 強烈建議:在升級與維護期間,請定期備份網站資料與資料庫,降低失誤風險。

延伸閱讀:PHP 官方支援版本與到期時間

可以直接切換PHP版本嗎?

許多網站管理者在得知 PHP 版本過舊後,會立即在控制台嘗試切換到較新版本。

⚠️ 這是極危險的行為。

因為每一套網頁程式(如 WordPress、Joomla、Drupal)、以及額外加裝的外掛模組,開發時皆基於特定 PHP 版本相容性編寫。

切換 PHP 版本前,請務必先確認以下事項:

  1. 主程式是否支援新版本:如 WordPress 建議版本為 PHP 8.1 以上,最低為 PHP 7.4。請參考其官方相容性說明
  2. 外掛程式是否相容:有些寄信程式如 PHPMailer、舊版表單元件可能與新版本 PHP 不相容,切換後功能會失效。
  3. 建議順序:先備份→檢查相容性→升級主程式與外掛→測試無誤→再正式切換。

以下為實際案例補充說明:

許多設計師將網站主程式升級為 PHP8.1,但因未同步調整外掛(如寄信元件),導致郵件發送失敗。這種情況多數來自 PHPMailer 未與新版 PHP 相容。

延伸閱讀:cPanel 切換 PHP 版本教學,請點我

結論

在網站建置與維護的過程中,PHP 版本的選擇與更新是關鍵的一環。

多數舊網站仍運行在 PHP 5 系列,甚至從未升級。但長期不更新的結果,不僅提高駭客入侵與惡意攻擊的機率,對網站 SEO 也會造成負面影響。

您應該將 PHP 版本視為「網站安全與長期營運」的一部分策略思考,而非「一勞永逸」的設定。

  • 選擇支援主機前,請先確認版本支援狀況
  • 網站建置後,請定期檢查主程式與外掛的相容性與版本
  • 切換 PHP 版本前,務必備份與測試

若您對 PHP 切換或網站維護操作不熟悉,請務必尋求專業協助。

網站安全與穩定營運,來自每一次選擇的謹慎。

常見問題

為什麼舊的 PHP 版本本身就不安全?

舊版 PHP 已停止安全性更新,即使程式看起來正常執行,核心底層仍可能存在未修補的漏洞。而早期版本也內建許多已被淘汰的危險函式與執行特性,容易被駭客利用。此外,舊版 PHP 缺乏現代防禦標準(如記憶體保護、防 RCE 等),也無法因應最新攻擊模式。

為什麼說只有「看似安全」,沒有「真正安全」的程式呢?

許多管理者認為網站沒有 upload 功能、外部登入或 API,就不容易被攻擊。但實際上,攻擊者常透過主機上其他帳號、共享模組漏洞、舊函式庫來間接利用舊 PHP 環境。即便網站程式寫得好,PHP 執行層本身若含漏洞,一樣存在後門與風險。

範例如下,若使用危險函式 eval() 搭配使用者輸入,極易被執行任意程式碼:

<?php
$cmd = $_GET['cmd'];
eval($cmd); // 攻擊者可輸入 ?cmd=phpinfo() 或其他惡意指令
?>

如果真的非用舊 PHP 不可,有什麼安全建議?

在極少數情況下(如舊版系統或內部工具),若必須使用已過期的 PHP 版本,建議採取下列安全措施:

  • 搭配 WAF、防火牆、mod_security 等防禦機制
  • 禁用危險函式(如 eval、exec、shell_exec、passthru 等)
  • 將服務限制於內網或 VPN,不對外公開
  • 限制上傳、寫入與資料庫權限,避免被植入
  • 使用專屬容器或隔離主機運行

同時,請持續規劃升級方案,避免因相依模組失效或主機更新導致服務崩潰。

舊版 PHP 是否會導致主機資源消耗較大?

是的,舊版 PHP(如 5.x 或早期 7.x)缺乏現代效能優化,執行相同程式所耗用的 CPU 與記憶體資源會明顯較高。相較之下,PHP 8.1 以上的版本支援 JIT 編譯器與更先進的記憶體管理,效能最高可提升 2~5 倍。

此外,即便您的程式碼未做任何變更,隨著主機系統升級(如新版 MySQL、Apache、Linux kernel),使用舊版 PHP 反而會造成:

  • 主機資源耗盡或異常使用(高 CPU 或記憶體)
  • 資料庫連線效率下降、造成佇列堆積
  • 操作系統與 PHP 模組之間出現兼容性警告或錯誤

總結:若長期維持在舊 PHP 環境,網站會在主機正常更新後「漸漸變慢」、甚至導致 CPU 暴衝、資料庫資源超量等問題。

文章來源:https://wpoki.com

Written by 統包小唐

從資訊小白一步步摸索成統包小唐,大伙一塊來進步吧!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

GIPHY App Key not set. Please check settings