PHP 版本調整看起來像是幾秒鐘的事,但對正式站來說,這往往是效能、安全性與相容性三者的平衡。你如果只知道「新版比較好」,很容易在升級後才發現程式或外掛跟不上。
你如果不想每次都只是照著別人的畫面一步一步跟著按,卻不知道自己到底改了什麼,這篇會比較適合你。重點不是讓你背流程,而是讓你下次遇到類似情況時,還知道該怎麼自己判斷。
你會學到什麼
- 知道什麼時候該切換 PHP 版本,什麼時候該先觀察。
- 看懂常見 PHP 選項與 extension 對網站的影響。
- 升級前後知道該怎麼驗證,避免網站一片空白。
- 學會調整 PHP 參數解決上傳限制、執行超時等常見問題。
什麼情況最適合先看這篇
- 剛接手虛擬主機、想自己把網站日常維護做好的人
- 你現在正要處理「cPanel PHP 版本切換與設定」這類操作
- 你希望做完之後不只功能能用,連驗證與排錯也有概念
開始前先確認
- 先確認目前網站程式、佈景或外掛支援哪些版本。
- 正式站先做備份,再安排低流量時段操作。
- 記錄目前版本,方便必要時快速回退。
先提醒你一件事
cPanel 很多功能都和網域、目錄、Email、憑證綁在一起,設定前先確認你改的是哪個站。
PHP 版本升級決策
詳細教學與操作步驟
支援的 PHP 版本
侃瑞科技虛擬主機支援以下 PHP 版本:
| 版本 | 官方狀態 | 建議 |
|---|---|---|
| PHP 5.6 | 已終止支援 | 僅供舊程式相容,儘速升級 |
| PHP 7.0 - 7.3 | 已終止支援 | 不建議繼續使用 |
| PHP 7.4 | 已終止支援 | 仍可用但不再有安全更新 |
| PHP 8.0 | 已終止支援 | 可用但建議升到 8.1+ |
| PHP 8.1 | 安全性更新 | 穩定選擇 |
| PHP 8.2 | 積極維護 | 推薦 |
| PHP 8.3 | 最新穩定版 | 推薦(新專案首選) |
建議: 新專案請使用 PHP 8.2 或 8.3,可獲得最佳效能與安全性。WordPress 6.x 建議至少使用 PHP 8.1。
升級前確認清單
在切換版本之前,照著這個清單走一次:
- 備份網站和資料庫(參考 備份教學)。
- 確認 WordPress 核心版本: WordPress 6.4+ 完全支援 PHP 8.2。
- 確認外掛相容性: 到每個外掛的官方頁面查看「Tested up to」資訊。
- 確認佈景主題相容性: 特別是付費主題,查看主題商的更新日誌。
- 記錄目前版本: 萬一出問題要回退。
切換 PHP 版本(MultiPHP Manager)
- 登入 cPanel,在「Software」區塊中點擊「MultiPHP Manager」。
- 找到您要變更的網域,勾選左方的核取方塊。
- 從右上方的「PHP Version」下拉選單中選擇目標版本。
- 點擊「Apply」套用變更。
變更會立即生效,無需重新啟動任何服務。
注意: 每個網域可以設不同的 PHP 版本。如果你有多個網站在同一個帳號下,改的時候確認只勾選了目標網域。
調整 PHP 設定(MultiPHP INI Editor)
若需要調整 PHP 參數(例如提高上傳限制),請使用 MultiPHP INI Editor:
- 在 cPanel 的「Software」區塊中,點擊「MultiPHP INI Editor」。
- 選擇「Basic Mode」(基本模式),然後從下拉選單選擇您的網域。
- 調整需要的參數值,常用設定如下:
| 參數 | 說明 | 預設值 | 建議值 | 影響 |
|---|---|---|---|---|
memory_limit | PHP 記憶體上限 | 128M | 256M | WordPress 複雜頁面需要更多 |
upload_max_filesize | 單檔上傳大小上限 | 2M | 64M | 影響媒體上傳 |
post_max_size | POST 請求大小上限 | 8M | 64M | 需 >= upload_max_filesize |
max_execution_time | 腳本最大執行秒數 | 30 | 300 | 影響備份、匯入 |
max_input_vars | 最大輸入變數數量 | 1000 | 3000 | WooCommerce 需要更多 |
max_input_time | 解析輸入的最大秒數 | 60 | 120 | 大型表單需要 |
- 調整完成後,點擊「Apply」儲存。
常見參數問題:
| 症狀 | 調整哪個參數 |
|---|---|
| WordPress 上傳圖片顯示「超過限制」 | upload_max_filesize 和 post_max_size |
| 頁面載入到一半變白 | memory_limit 和 max_execution_time |
| 外掛設定頁面存不了 | max_input_vars |
| 資料庫匯入超時 | max_execution_time |
進階模式(Editor Mode)
如需調整 Basic Mode 中未列出的參數,可切換至「Editor Mode」,直接編輯 php.ini 指令。請確認語法正確,格式為:
參數名稱 = 值
例如:
max_input_time = 120
display_errors = Off
常用進階設定:
# 關閉錯誤顯示(正式站一定要關)
display_errors = Off
# 但把錯誤記錄到 log 檔(方便排錯)
log_errors = On
error_log = /home/使用者名稱/logs/php_error.log
# 設定時區
date.timezone = Asia/Taipei
PHP Extension 管理
某些 WordPress 外掛或 PHP 應用程式需要特定的 PHP extension。你可以在 MultiPHP INI Editor 的 Editor Mode 中啟用或停用。
WordPress 常用的 extension:
| Extension | 用途 | WordPress 需要? |
|---|---|---|
curl | HTTP 請求 | 必要 |
gd 或 imagick | 圖片處理 | 必要(至少一個) |
mbstring | 多位元組字串處理 | 必要 |
mysqli | MySQL 連線 | 必要 |
openssl | SSL 加密 | 必要 |
xml | XML 解析 | 必要 |
zip | ZIP 壓縮解壓 | 建議 |
intl | 國際化 | 建議 |
exif | 圖片 EXIF 資訊 | 選用 |
確認目前 PHP 版本與設定
若要確認網站目前使用的 PHP 版本與設定,可在 public_html 建立一個測試檔案:
<?php phpinfo(); ?>
將此內容儲存為 info.php,然後瀏覽 https://yourdomain.com/info.php。
這個頁面會顯示:
- PHP 版本號
- 已啟用的 extension
- 各項參數的目前值和預設值
- 伺服器環境資訊
確認完畢後,請務必刪除此檔案,以避免洩露伺服器資訊。 這個檔案包含很多敏感的伺服器設定,不應該留在線上。
Troubleshooting
切換 PHP 版本後網站白屏
最常見原因: 外掛或佈景主題不相容新版 PHP。
排查步驟:
- 先在 MultiPHP Manager 切回舊版 PHP,確認網站恢復正常。
- 用 File Manager 進入
wp-content/plugins/,把所有外掛資料夾改名(例如加上.bak),這樣 WordPress 會停用所有外掛。 - 切回新版 PHP,如果網站正常就代表是外掛的問題。
- 一個一個把外掛改回原名,找出哪個不相容。
WordPress 後台顯示「PHP 版本過低」警告
如果你在 WordPress 儀表板看到紅色警告:
- 記下建議的最低版本。
- 做好備份。
- 到 MultiPHP Manager 升級。
- 確認網站正常。
上傳檔案大小限制改了但沒生效
可能原因:
post_max_size沒有跟著改。post_max_size必須 >=upload_max_filesize。- 改錯網域。確認你在 INI Editor 選的是正確的網域。
- 瀏覽器快取。清快取後重試。
- WordPress 本身有額外限制。到後台的「媒體」→「新增」看顯示的上限值。
PHP 錯誤記錄(Error Log)在哪裡
- 在 cPanel 的「Metrics」區塊點擊「Errors」,可以看最近的 PHP 錯誤。
- 或到 File Manager 找
logs/目錄,查看error.log。 - WordPress 也可以在
wp-config.php加入:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
錯誤會記錄到 wp-content/debug.log。正式站記得把 WP_DEBUG_DISPLAY 設成 false,不要讓訪客看到錯誤訊息。
做完後怎麼確認自己真的有設對
- 開一個
info.php確認 PHP 版本和參數正確(測完記得刪)。 - 確認網站前台和後台都能正常運作。
- 試上傳一張圖片到 WordPress,確認上傳限制有改到。
- 確認沒有 PHP 錯誤出現在 Error Log 中。
- 如果有電商功能,測一次結帳流程。
這一題最常踩的坑
- 看到可升級就直接升,沒先查相容性。
- 版本切換後沒清快取,就誤判網站還是壞的。
- 把 extension 關掉之後才發現某個模組是網站必要依賴。
- 改了
upload_max_filesize但忘了同步改post_max_size。 info.php忘記刪,洩漏伺服器資訊。
如果你要往下一步走
如果你是 WordPress 站長,做完這篇很適合接著看 WordPress 安全性強化教學。如果你想了解更多效能優化,可以參考 資源用量監控教學。如果你想把這些功能直接用在穩定環境,侃瑞的 cPanel 虛擬主機方案 可以直接對照本文操作。