不同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 環境。
- 前往 PHP 官網查詢 phpinfo 函數說明。
- 開啟虛擬主機的網站根目錄,例如:
- cPanel:public_html 資料夾
- Plesk:httpdocs 資料夾
或放在子網域的對應資料夾。
- 建立一個檔案,命名為
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 表現與瀏覽者安全信任
您可採取以下處理方式:
- 升級網站程式:將程式更新為支援新版 PHP 的架構,包含主程式與外掛。
- 若無法立即升級:應盡快針對程式進行安全性加固,例如:
- 移除危險函數與老舊函式
- 替換不相容的外掛或模組
- 強烈建議:在升級與維護期間,請定期備份網站資料與資料庫,降低失誤風險。
延伸閱讀:PHP 官方支援版本與到期時間
可以直接切換PHP版本嗎?
許多網站管理者在得知 PHP 版本過舊後,會立即在控制台嘗試切換到較新版本。
⚠️ 這是極危險的行為。
因為每一套網頁程式(如 WordPress、Joomla、Drupal)、以及額外加裝的外掛模組,開發時皆基於特定 PHP 版本相容性編寫。
切換 PHP 版本前,請務必先確認以下事項:
- 主程式是否支援新版本:如 WordPress 建議版本為 PHP 8.1 以上,最低為 PHP 7.4。請參考其官方相容性說明。
- 外掛程式是否相容:有些寄信程式如 PHPMailer、舊版表單元件可能與新版本 PHP 不相容,切換後功能會失效。
- 建議順序:先備份→檢查相容性→升級主程式與外掛→測試無誤→再正式切換。
以下為實際案例補充說明:
許多設計師將網站主程式升級為 PHP8.1,但因未同步調整外掛(如寄信元件),導致郵件發送失敗。這種情況多數來自 PHPMailer 未與新版 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
GIPHY App Key not set. Please check settings