PHP 5.3.28 → 5.3.29 升級後,網站全站 502 Bad Gateway,靜態資源正常,PHP 請求全掛。Nginx 與 PHP-FPM 採 Unix Socket 通訊(/tmp/php-cgi.sock)。
127.0.0.1:1234 即恢復正常 → 確定為 Socket 通訊層問題。-rwx------ 1 root root(700),Nginx worker(通常 www-data)無讀寫權。srw-rw-rw- 1 root root(666),預設權限變更導致。PHP 5.3.29 修改了 php-fpm.conf 預設 Socket 權限(從 0666 改為 0700),且未在更新日誌明確說明。若部署腳本未顯式設定 listen.mode,升級即中招。
; php-fpm.conf 或 pool.d/www.conf
listen = /tmp/php-cgi.sock
listen.owner = www
listen.group = www
listen.mode = 0666
重載 PHP-FPM(systemctl reload php-fpm 或 kill -USR2),Socket 權限變為 srw-rw-rw-,502 即刻消失。
127.0.0.1:9000,避免 Socket 權限、檔案描述符洩漏等邊界問題。「微版本升級不應破壞相容性」是理想,現實卻常因預設值變更踩坑。顯式配置 > 信任預設,是運維鐵律。