網站技術教學專區

網域、主機、網站設計與 SEO 架構解析

PHP 版本怎麼選?共用主機的版本限制與外掛相容性問題

「您的網站正在使用即將停止支援的 PHP 版本,建議儘早升級。」這封通知信、或是後台那條黃色的提醒,多數人的反應都是同一句:網站現在跑得好好的,非換不可嗎?換了會不會壞掉?

這兩個擔心都合理。實務上我們每個月都會處理幾件 PHP 版本相關的案子,其中真正棘手的從來不是 PHP 本身,而是某一個已經停止更新的外掛。而好消息是:在共用主機上切換 PHP 版本,是少數出事可以馬上退回去的操作,這一點和改網址、搬主機完全不同。

這篇說明 PHP 的支援週期怎麼運作、用舊版的三個實際代價、共用主機上有哪些版本限制,以及切換前後該怎麼做才不會出事。

PHP 版本為什麼每年都在催你換

PHP 有一套固定的發布節奏:每年 11 月推出一個新的小版本,每個版本的壽命是四年。這四年分成兩段:

階段 時間 官方會做什麼
主動支援 推出後兩年 修一般錯誤,也修安全漏洞
安全支援 接下來兩年 只修重大安全漏洞,一般問題不再處理
已停止支援 四年之後 什麼都不修,之後發現的漏洞永遠是開著的

PHP 版本的主動支援、安全支援與停止支援三個階段

這裡最容易被誤解的一點:催你換版本的理由不是「舊版比較慢」,而是「已停止支援的版本,之後出漏洞不會有人修」。速度只是附帶的差別,安全性才是硬性的那條線。

要查某個版本現在處在哪個階段,最可靠的來源是 PHP 官方網站的 Supported Versions 頁面,上面有每個版本的日期,用顏色標示三種狀態。主機商的公告與各種部落格文章都是轉述,日期看官方的就好。

繼續用舊版 PHP 的三個實際代價

一、安全性:這不是理論上的風險

PHP 是網站最底層的執行環境,它的漏洞和外掛漏洞不同——外掛出事,可能只影響有裝那個外掛的網站;PHP 出事,影響的是整台伺服器上所有跑在那個版本上的網站。

而且攻擊者掃描時會直接看你回報的版本號。停在已停止支援的版本,等於在門口掛牌告訴對方「這裡有一批已知漏洞而且不會被修補」。我們在網站被駭怎麼辦那篇裡提過,實際處理過的入侵案例中,舊版 PHP 加上長期沒更新的外掛,是最常見的組合。

二、效能:這是少數「改設定就有感」的項目

網站優化通常要做很多事才看得出差別,換 PHP 版本是例外。PHP 8 系列在執行效率上比 7 系列有明顯提升,同一個網站、同一台主機,只是切換版本,後台操作和頁面回應通常就會變快。

在共用主機上,這個差別還會被放大:PHP 跑得更省資源,代表你的帳號更不容易碰到資源上限,也比較不會受到同機器上其他網站的影響。這一段和網站速度慢怎麼辦裡「先分辨是網站還是主機的問題」是同一個脈絡——換版本屬於成本最低、效益最直接的那一類。

三、外掛和佈景主題開始把你留在原地

這一點的影響是慢慢浮現的。外掛作者會逐步把最低需求往上拉,一旦你的 PHP 版本低於某個外掛的要求,後台就裝不了它,已安裝的也可能停在舊版本不再更新。

結果是:你不是「暫時不換」,而是慢慢失去選擇權。拖得越久,之後要一次跨越的版本差距越大,風險也越高。

那到底要選哪一個版本?三個原則

原則一:選還在支援期內、但不是剛推出的那一版

最新版推出的頭幾個月,外掛與佈景主題的作者還在陸續跟進,這段時間搶快沒有好處。比較穩的做法是在還有主動支援的版本裡,挑推出滿一年左右的那一個——外掛生態已經跟上,支援期也還剩很長。

原則二:唯一的紅線是「不要停在已停止支援的版本」

上面那條是建議,這條是底線。在支援期內的版本之間要選哪一個,可以慢慢評估;但如果現在用的版本已經停止支援,那就不是「要不要換」的問題了。

原則三:實際的天花板由外掛決定,不是由 PHP 官方決定

PHP 官方說某版可以用,不代表你的網站可以用。真正決定你能升到哪裡的,是網站上裝的那些外掛與佈景主題。所以順序是:先看外掛的需求,再決定 PHP 的版本,不是反過來。挑選與汰換外掛的判斷標準,在WordPress 外掛怎麼選裡有完整說明。

怎麼知道自己現在用哪一版

兩個地方都查得到:WordPress 後台的「工具 → 網站健康」會直接顯示目前的 PHP 版本,版本過舊時還會標為建議改善項目;主機控制台裡也有 PHP 版本的選擇頁面,位置可以參考cPanel 新手教學

共用主機上的版本限制:三件事先知道

共用主機是一台機器上跑很多個網站,所以 PHP 版本的選擇方式和自己管一台機器不一樣。有三個限制值得先了解。

共用主機可以依網域分別設定 PHP 版本

一、可選的版本清單是主機商決定的

控制台裡會列出好幾個版本讓你自己切換,但那份清單是主機端事先裝好的。最新版通常會等穩定一段時間才上架,太舊的版本則會在停止支援後陸續下架。所以「想裝哪一版就裝哪一版」在共用主機上不成立,這是共用環境換來便利的代價之一。

二、版本通常是以網域為單位切換,不是整個帳號一起

這點很多人不知道,但很實用:同一個主機帳號底下的多個網域、子網域,可以各自使用不同的 PHP 版本。所以你可以先把測試站或次要網站切到新版,跑個幾天沒事,再切主站。這是共用主機上最安全的驗證方式,不需要另外架環境。

三、擴充套件要跟著版本重新確認

PHP 的擴充套件(extension)是綁在版本上的,切換版本之後,某些擴充可能沒有一起啟用。症狀通常是「網站大致正常,但某一個功能壞了」,例如圖片處理、寄信、或是某個金流串接。切完版本後,記得回控制台的擴充設定頁確認一次。

如果你的網站對特定版本或特定擴充有硬性需求,那代表共用主機可能不是合適的環境,這屬於挑主機時就該確認的規格問題,評估方式在台灣虛擬主機怎麼選裡有一節專門討論。

切換前要做的四件事

一、先備份,而且確認備份還原得回來

這是所有「可能改壞」的操作的共同前提。要注意的是有備份不等於能還原,實際的備份與還原演練在網站備份怎麼做裡有完整說明。

二、盤點外掛,特別注意長期沒更新的那些

到外掛清單裡逐一看「最後更新時間」。一兩年沒動靜的外掛,就是這次升級的主要風險來源。有幾個外掛能直接掃描全站程式碼、列出與新版 PHP 不相容的地方,裝來跑一次可以省下很多猜測。

三、確認錯誤紀錄看得到

切換後如果出事,錯誤訊息是唯一的線索。主機控制台裡有錯誤紀錄的頁面,先確認自己找得到它在哪,不要等出事了才開始找。

四、挑離峰時間,切完逐頁看過

不要只看首頁。重點要看的是有互動的頁面:聯絡表單、購物車與結帳、會員登入、搜尋,以及後台的文章編輯頁。這些地方用到的程式碼最多,也最容易出問題。

切換後出事會長什麼樣,以及怎麼退回去

先講最重要的一句話:PHP 版本切換是可逆的。把版本切回原本那一版,網站通常在數秒內就恢復原狀,資料不會有任何損失。這和改網址、搬主機那類操作最大的差別就在這裡——所以不必把它想得太可怕,出事就退回來,再慢慢找原因。

切換版本後出問題可以直接切回原版本

常見的幾種症狀與判斷方向:

症狀 多半是什麼問題
整個網站一片白 某支程式碼在新版語法下直接中斷,看錯誤紀錄的最後一行
顯示伺服器錯誤(500) 同上,但原因也可能在佈景主題
前台壞掉、後台還進得去 多半是佈景主題或前台專用的外掛
整體正常,只有一個功能失效 擴充套件沒啟用,或該功能的外掛不相容
畫面上多出一堆警告文字 不是壞掉,是新版把舊寫法標為「已淘汰」,關掉錯誤顯示即可,但代表該外掛需要更新

真正不可逆的不是切換版本本身,而是「為了相容而順手更新的那些外掛」。所以如果打算一次做兩件事,順序建議是:先切版本、確認網站正常,再處理外掛更新。兩件事分開做,出問題時才知道是哪一件造成的。

卡關的通常不是 PHP,是那個停更的外掛

實務上,升級卡住的案例有八成都是同一個原因:某個外掛的作者已經好幾年沒有更新了。這時候只有三條路。

一、找替代品。最常見也最務實。多數功能都找得到還在持續更新的同類外掛,換掉之後連帶解決了未來的相容問題。

二、確認那個功能還需不需要。網站經營幾年下來,常有一些當初裝了、後來根本沒在用的功能。直接停用,問題就消失了。

三、請人改。如果那個功能無可取代(例如客製化的表單或串接),就需要有人去改那段程式碼。這屬於要評估成本的選項,但至少方向是明確的。

順帶一提,如果是網站在本機做好之後才搬上主機,本機和主機的 PHP 版本不一致也是常見的落差來源,這在寫好的網站怎麼上線裡有提到;而換主機商時,新舊主機預設版本不同造成的症狀,則整理在主機搬家後常見的 6 個問題裡。

結語:把它當成每兩年一次的例行保養

PHP 版本這件事,最好的處理方式是別讓它變成急事。每隔一段時間去網站健康看一眼,趁支援期還沒到底的時候從容地換,比收到「即將停止支援」通知才開始查外掛相容性輕鬆得多。

換版本的操作本身只有幾秒鐘,也隨時退得回來;真正要花時間的是前面的盤點。新架站的人可以直接參考WordPress 架站完整教學,一開始就用支援期內的版本;正在考慮換主機的人,可以把「提供哪些 PHP 版本、能不能自己切換」放進更換虛擬主機前必看的 7 個檢查清單一起評估。

5NET 的虛擬主機方案都可以在控制台裡自行切換 PHP 版本,以網域為單位設定,隨時可以切回來。不確定自己的網站換版本會不會出事,也歡迎與我們聯絡,我們可以先從主機端幫你看一次外掛清單與目前的版本狀況。

近期文章

自己做太花時間?

5NET 從 2000 年開始經營主機與網站,SEO 從關鍵字選定到技術修正一手包辦。告訴我們你想排的關鍵字,免費評估競爭現況與預估時程。

了解SEO排名優化

文章分類

標籤雲

5NET專業 SEO 服務

關鍵字策略全面規劃

5NET SEO 關鍵字服務,從搜尋意圖出發,深入分析產業關鍵字與競品布局,協助網站精準鎖定高曝光、高轉換的搜尋字詞。