基於php fpm的配置詳解

2021-09-09 02:42:19 字數 3213 閱讀 3592

php5.3自帶php-fpm

/usr/local/php/etc/php-fpm.conf

pid = run/php-fpm.pid

pid設定,預設在安裝目錄中的var/run/php-fpm.pid,建議開啟

error_log = log/php-fpm.log

錯誤日誌,預設在安裝目錄中的var/log/php-fpm.log

log_level = notice

錯誤級別. 可用級別為: alert(必須立即處理), error(錯誤情況), warning(警告情況), notice(一般重要資訊), debug(除錯資訊). 預設: notice.

emergency_restart_threshold = 60

emergency_restart_interval = 60s

表示在emergency_restart_interval所設值內出現sigse**或者sigbus錯誤的php-cgi程序數如果超過 emergency_restart_threshold個,php-fpm就會優雅重啟。這兩個選項一般保持預設值。

process_control_timeout = 0

設定子程序接受主程序復用訊號的超時時間. 可用單位: s(秒), m(分), h(小時), 或者 d(天) 預設單位: s(秒). 預設值: 0.

daemonize = yes

後台執行fpm,預設值為yes,如果為了除錯可以改為no。

在fpm中,可以使用不同的設定來執行多個程序池。 這些設定可以針對每個程序池單獨設定。

listen = 127.0.0.1:9000

fpm監聽埠,即nginx中php處理的位址,一般預設值即可。

可用格式為: 『ip:port', 『port', 『/path/to/unix/socket'. 每個程序池都需要設定.

listen.backlog = -1

backlog數,-1表示無限制,由作業系統決定,此行注釋掉就行。backlog含義參考:

listen.allowed_clients = 127.0.0.1

允許訪問fastcgi程序的ip,設定any為不限制ip,如果要設定其他主機的nginx也能訪問這台fpm程序,listen處要設定成本地可被訪問的ip。預設值是any。

每個位址是用逗號分隔. 如果沒有設定或者為空,則允許任何伺服器請求連線

listen.owner = www

listen.group = www

listen.mode = 0666

unix socket設定選項,如果使用tcp方式訪問,這裡注釋即可。

user = www

group = www

啟動程序的帳戶和組

pm = dynamic

如何控制子程序,選項有static和dynamic。

如果選擇static,則由pm.max_children指定固定的子程序數。

如果選擇dynamic,則由下開引數決定:

pm.max_children ,子程序最大數

pm.start_servers ,啟動時的程序數

pm.min_spare_servers ,保證空閒程序數最小值,如果空閒程序小於此值,則建立新的子程序

pm.max_spare_servers ,保證空閒程序數最大值,如果空閒程序大於此值,此進行清理

對於專用伺服器,pm可以設定為static。

pm.max_requests = 1000

設定每個子程序重生之前服務的請求數. 對於可能存在記憶體洩漏的第三方模組來說是非常有用的. 如果設定為 '0′ 則一直接受請求. 等同於 php_fcgi_max_requests 環境變數. 預設值: 0.

pm.status_path = /status

fpm狀態頁面的**. 如果沒有設定, 則無法訪問狀態頁面. 預設值: none.

ping.path = /ping

fpm監控頁面的ping**. 如果沒有設定, 則無法訪問ping頁面. 該頁面用於外部檢測fpm是否存活並且可以響應請求. 請注意必須以斜線開頭 (/)。

ping.response = pong

用於定義ping請求的返回相應. 返回為 http 200 的 text/plain 格式文字. 預設值: pong.

request_terminate_timeout = 0

設定單個請求的超時中止時間. 該選項可能會對php.ini設定中的'max_execution_time'因為某些特殊原因沒有中止執行的指令碼有用. 設定為 '0′ 表示 『off'.

當經常出現502錯誤時可以嘗試更改此選項。

request_slowlog_timeout = 10s

當乙個請求該設定的超時時間後,就會將對應的php呼叫堆疊資訊完整寫入到慢日誌中. 設定為 '0′ 表示 『off'

slowlog = log/$pool.log.slow

慢請求的記錄日誌,配合request_slowlog_timeout使用

rlimit_files = 1024

設定檔案開啟描述符的rlimit限制. 預設值: 系統定義值

系統預設可開啟控制代碼是1024,可使用 ulimit -n檢視,ulimit -n 2048修改。

rlimit_core = 0

設定核心rlimit最大限制值. 可用值: 『unlimited' 、0或者正整數. 預設值: 系統定義值.

chroot =

啟動時的chroot目錄. 所定義的目錄需要是絕對路徑. 如果沒有設定, 則chroot不被使用.

chdir =

設定啟動目錄,啟動時會自動chdir到該目錄. 所定義的目錄需要是絕對路徑. 預設值: 當前目錄,或者/目錄(chroot時)

catch_workers_output = yes

重定向執行過程中的stdout和stderr到主要的錯誤日誌檔案中. 如果沒有設定, stdout 和 stderr 將會根據fastcgi的規則被重定向到 /dev/null . 預設值: 空.

php中的fpm 基於php fpm的配置詳解

php5.3自帶php fpm usr local php etc php fpm.conf pid run php fpm.pid pid設定,預設在安裝目錄中的var run php fpm.pid,建議開啟 error log log php fpm.log錯誤日誌,預設在安裝目錄中的var ...

PHP FPM配置問題

php fpm配置問題 本人搭建本地lnmp環境,nginx已安裝並能訪問 之後寫了個index.php檔案,想看看能否訪問到,內容如下 在nginx.conf配置檔案中配置虛擬主機 server error page 404 404.html redirect server error pages...

php fpm優化方法詳解

php fpm優化方法 php fpm存在兩種方式,一種是直接開啟指定數量的php fpm程序,不再增加或者減少 另一種則是開始時開啟一定數量的php fpm程序,當請求量變大時,動態的增加php fpm程序數到上限,當空閒時自動釋放空閒的程序數到乙個下限。這兩種不同的執行方式,可以根據伺服器的實際...