1. 檢查
先看是哪個 Alpine 分支、裝了哪些 PHP 套件:
cat /etc/alpine-release
apk info -v | grep -E '^php[0-9]+-'對照套件頁(community/x86_64,2026-10-23 查詢)。表格是修補版,已安裝版本等於或更新就算修好:
| 分支 | php85 | php84 | php83 | php82 |
|---|---|---|---|---|
| edge、v3.24 | 8.5.12-r0 | 8.4.27-r0 | 8.3.36-r0 | — |
| v3.23 | 8.5.12-r0 | 8.4.27-r0 | 8.3.36-r0 | — |
| v3.22 | — | 8.4.27-r0 | 8.3.36-r0 | 8.2.35-r0 |
| v3.21 | — | 沒有修補(仍是 8.4.14-r0) | 8.3.36-r0 | 8.2.35-r0 |
| v3.20 以前 | — | — | 沒有修補 | 沒有修補 |
「—」是該分支沒有這個套件。v3.20 以前已不再更新,v3.21 的 php84 也沒有跟上;請升級 Alpine 分支,或換成有修補的 PHP 套件。
2. 更新
apk update
apk upgradePHP 跑在 Alpine 基底的容器裡:不要在執行中的容器裡 apk upgrade,容器重建就會回到舊版。改成更新 Dockerfile 的基底映像或 apk 步驟後重建映像,見 Docker/Kubernetes。
3. 重啟
rc-service php-fpm84 restart網頁伺服器(nginx、Apache)若直接載入 PHP,也一起重啟。容器則以新映像重新部署,確認舊的 Pod 或容器都已結束。
4. 驗證
- 再跑一次第 1 步,確認 PHP 套件版本等於或新於上表。
- 對正在接流量的那一支確認版本,例如
php-fpm84 -v;容器要進到正在跑的那一個裡面看,見我受影響嗎?。 - 確認編排檔或部署腳本沒有把舊映像拉回來。
來源
查詢日期:。官方公告優先列出;內容如與 PHP 官方公告不一致,以官方公告為準。