在Linux系統中,PHP-FPM(FastCGI Process Manager)是一個用于管理PHP FastCGI進程的工具
listen
: 這個指令定義了PHP-FPM監聽的地址和端口。它可以是Unix socket(例如:/var/run/php-fpm.sock
)或者TCP/IP地址(例如:127.0.0.1:9000
)。使用Unix socket可以提高性能,因為它避免了網絡開銷。
listen.owner
, listen.group
, listen.mode
: 這些指令分別定義了監聽套接字的屬主、屬組和權限。例如,listen.owner = www-data
表示監聽套接字的屬主是www-data用戶。
user
和 group
: 這兩個指令定義了PHP-FPM進程運行的用戶和組。通常,為了安全起見,建議將它們設置為非root用戶和組。
pm
: 這個指令定義了PHP-FPM的進程管理模式??蛇x值有static
、dynamic
和ondemand
。static
模式下,會預先創建指定數量的子進程;dynamic
模式下,子進程的數量會根據負載動態調整;ondemand
模式下,只有在有請求時才會創建子進程。
pm.max_children
, pm.start_servers
, pm.min_spare_servers
, pm.max_spare_servers
: 這些指令用于控制dynamic
和ondemand
模式下的子進程數量。例如,pm.max_children = 50
表示最多可以同時運行50個子進程。
pm.max_requests
: 這個指令定義了一個子進程在被重啟之前可以處理的請求數量。這有助于防止內存泄漏。
request_terminate_timeout
: 這個指令定義了腳本執行的最長時間。超過這個時間的腳本將被終止。
slowlog
: 這個指令定義了慢查詢日志的路徑。慢查詢是指執行時間超過指定閾值的查詢。
catch_workers_output
: 這個指令決定是否捕獲子進程的輸出。將其設置為yes
可以在錯誤日志中查看子進程的輸出,有助于調試。
php_admin_value
和 php_admin_flag
: 這些指令允許你設置PHP-FPM的全局配置選項。例如,php_admin_value[error_log] = /var/log/php-fpm/error.log
表示將錯誤日志寫入指定的文件。
這些只是PHP-FPM配置文件中的一部分指令。你可以根據自己的需求進行調整。在修改配置文件后,記得重啟PHP-FPM服務以使更改生效。