RockyLinux9
•
•
By SystemArch_Alex
Rocky Linux 9 基礎教學 (16):PHP-FPM 環境配置與效能優化實務
打造高效能的 PHP 執行環境
在 LEMP 架構中,PHP-FPM (FastCGI Process Manager) 負責處理動態請求。Rocky Linux 9 預設提供的 PHP 8.x 版本在效能上有顯著提升,但若不經過精確的調優,在高併發場景下仍可能成為系統瓶頸。本篇將深入探討如何配置與優化 PHP-FPM。
1. 安裝與基礎配置
Rocky Linux 9 使用 AppStream 管理 PHP 版本。我們可以選擇特定版本安裝:
sudo dnf module list php
sudo dnf module enable php:8.1
sudo dnf install php-fpm php-mysqlnd php-gd php-xml php-mbstring -y
sudo systemctl enable --now php-fpm
2. 核心配置文件解析
PHP-FPM 的主配置文件位於 /etc/php-fpm.conf,而針對特定對象的 Pool 配置則位於 /etc/php-fpm.d/www.conf。在 Rocky Linux 中,預設的使用者與群組為 apache,若你使用 Nginx,建議將其改為 nginx:
user = nginx
group = nginx
listen = /run/php-fpm/www.bundle.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
使用 Unix Socket 傳輸通常比 TCP Socket (127.0.0.1:9000) 更快,因為它減少了網路協議棧的開銷。
3. 進程管理器 (Process Manager) 調優
這是影響效能最關鍵的部分。在 www.conf 中,有三種模式:static、dynamic 與 ondemand。
- Static:固定進程數量,適合記憶體充足且流量穩定的伺服器。
- Dynamic:根據需求動態調整,最常用於一般 Web 應用。
優化範例:
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
pm.max_requests 設為 500 可以強制進程在處理完 500 個請求後重啟,有效防止 PHP 腳本常見的記憶體洩漏問題。
4. 開啟 Opcache 提升速度
Opcache 能將編譯後的腳本快取在記憶體中,避免重複編譯。編輯 /etc/php.d/10-opcache.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
5. 安全加固建議
為了防止跨站點攻擊,務必在 /etc/php.ini 中設定:
cgi.fix_pathinfo=0
expose_php=off
最後,重啟服務以套用所有變更:
sudo systemctl restart php-fpm
透過以上步驟,你的 PHP 環境將具備更高的穩定性與反應速度,足以應付生產環境的需求。