修補:Alpine

Alpine 的 PHP 套件以分支命名(php85、php84⋯⋯)。3.21 以後的穩定分支都已上架修補版,用 apk 更新、重啟即可;跑在容器裡就重建映像。

1. 檢查

先看是哪個 Alpine 分支、裝了哪些 PHP 套件:

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. 更新

更新套件索引並升級(只升 PHP 時把套件名稱列在 upgrade 後面)
apk update
apk upgrade

PHP 跑在 Alpine 基底的容器裡:不要在執行中的容器裡 apk upgrade,容器重建就會回到舊版。改成更新 Dockerfile 的基底映像或 apk 步驟後重建映像,見 Docker/Kubernetes。

3. 重啟

OpenRC:重啟 PHP-FPM(服務名依分支,例如 php-fpm84)
rc-service php-fpm84 restart

網頁伺服器(nginx、Apache)若直接載入 PHP,也一起重啟。容器則以新映像重新部署,確認舊的 Pod 或容器都已結束。

4. 驗證

  • 再跑一次第 1 步,確認 PHP 套件版本等於或新於上表。
  • 對正在接流量的那一支確認版本,例如 php-fpm84 -v;容器要進到正在跑的那一個裡面看,見我受影響嗎?。
  • 確認編排檔或部署腳本沒有把舊映像拉回來。

來源

查詢日期:。官方公告優先列出;內容如與 PHP 官方公告不一致,以官方公告為準。