先問:它會不會被網頁請求碰到?
官方把風險對象寫成「服務網頁請求的安裝」:Apache mod_php、PHP-FPM、php-cgi、FrankenPHP、LiteSpeed。英國 NCSC 的用詞更寬,說任何版本都可能受影響。本站沒有看到官方保證命令列的 PHP 絕對無關,所以盤點時以「會不會被網頁請求碰到」為準。
別漏掉表面上沒寫 PHP 的東西:主機控制台、廠商設備、Windows 軟體內建的 php.exe、php-cgi.exe。
php -v 不一定是網站在用的那一支
php -v 印的是你在 shell 裡叫到的那支執行檔。網站用的 PHP-FPM pool 或 Apache 模組可以是另一支,版號不同並不稀奇(ICSDA)。
php -v接著逐一對上真正處理請求的那一支:
- PHP-FPM:看 pool 設定指向哪一支
php-fpm執行檔,再對那一支執行-v。 - Apache mod_php:確認 Apache 是否載入
php_module,並看該模組對應的版號,而不是只看 PATH 上的php。 - 主機控制台:cPanel、Plesk 顯示的版本,要和上面兩支對得起來;對不上時,以真正處理請求的那支為準。
apachectl -M控制台通常各版本裝在不同目錄。Plesk 官方文章的檢查例子是直接呼叫該版本的執行檔:
/opt/plesk/php/8.3/bin/php -vPlesk 在 Linux 上的 8.1.34、8.0.30、7.4.33 版號沒有變,只有 2026-10-21 建置的才含修補,所以要一併看 built: 那一行的建置日期。
需要一個只給管理員看的檢查頁時,印出 PHP_VERSION 與 PHP_SAPI 即可,用完立刻從文件根目錄移除。不要把 phpinfo() 長時間留在公開網址。
發行版的版號怎麼讀
發行版通常不升級大版本,而是把安全修補回移植到自己的套件。版號會是發行版自己的編號,比 php.net 的修補版號「小」也可能已經修好。官方查詢日 2026-10-22 讀到的例子:
| 發行版 | 套件 | 已修補的套件版 | 對照 php.net |
|---|---|---|---|
| Ubuntu 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 | 數字看起來比 8.3.36 舊,但 USN 列為已修補 |
| Ubuntu 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 | 8.1 沒有新的官方安裝包,Ubuntu 自行回移植 |
| Debian trixie | php8.4 | 8.4.27-1~deb13u1 | 追蹤頁上 8.4.24-1~deb13u1 仍列為有漏洞 |
規則:以該發行版的安全公告或追蹤頁為準,看已安裝的套件版本是否等於或新於公告上的修補版,不要只拿版號跟 php.net 比大小。
容器映像要分開看
主機上 apt upgrade 不會換掉映像裡的 PHP。要進到正在接流量的容器裡確認版本,不要只看建置機或舊的本機映像。詳見 Docker/Kubernetes。
對照官方版本矩陣
完整修補版號在版本矩陣。隱藏版本號的網站(沒送 X-Powered-By 標頭)不會出現在外部掃描的統計裡。你的主機就算沒露出版本,該修還是要修。
來源
查詢日期:。官方公告優先列出;內容如與 PHP 官方公告不一致,以官方公告為準。