配置檔案php-fpm.conf 1
配置檔案php-fpm.conf
瞭解一下PHP 的FastCGI的配置檔案,該配置檔案分為三部分,第一部分為FPM配置、第二部分為全域性配置、第三部分為程式池的定義。熟練掌握配置檔案中的這些指令,對於Nginx的排除很有幫助。由於PHP從5.3.3開始整合了php-fpm,它的配置檔案也有原來的xml格式改為了ini格式,除了格式上的更改外,配置內容沒改變,首行是“;”的表示註釋行,不會被FPM解釋。
第一部分:FPM配置
本配置檔案中的相對路徑都與在PHP安裝是使用的配置引數“--prefix=”有關,在這裡我們是“/usr/local/php5.3.4”,這個字首(prefix)在命令列中可以通過使用“-p”引數來動態改變。
;include=etc/fpm.d/*.conf
該指令用於包含一個或多個檔案。如果glob(3) 存在 (glob() 函式返回匹配指定模式的檔名或目錄。該函式返回一個包含有匹配檔案 / 目錄的陣列。如果出錯返回 false。),那麼可以包含由glob(3)模式的一批檔案。該指令可以在配置檔案的任何地方使用。也可使用相對路徑,如果你使用相對路徑那麼可能是下面情況中的一種:
①、如果使用了-p引數設定,那麼就是全域性字首(global prefix);
②、否則就是/usr/local/php5.3.4,這是在安裝php時使用“--prefix=”指定的路徑。
第二部分、全域性部分
全域性配置部分有標誌 [global] 開始,它是針對php-fpm全域性設定。
;pid = run/php-fpm.pid
設定pid檔案的位置。預設位置是/usr/local/php5.3.4/var(或者說是“--prefix=”下的var/目錄下)。pid指令沒有預設值,就是沒有設定pid檔案;
;error_log = log/php-fpm.log
記錄錯誤日誌的檔案。該指令的預設值為log/php-fpm.log,它的預設字首為/usr/local/php5.3.4/var;
;log_level = notice
記錄日誌的級別,可能的值為:alert, error, warning, notice, debug。
預設的值為:notice;
;emergency_restart_threshold = 0
如果一些子程式在這個時間段(通過該指令設定)內,而帶有IGSEGV 或 SIGBUS退出,那麼FPM將會重啟。它的值為“0”,表示關閉該功能。
;emergency_restart_interval = 0
當文雅(graceful)的重啟服務時,通過使用指令emergency_restart_interval設定時間間隔來決定服務的初始化時間。這個設定對於工作在加速器共享記憶體意外時很有用。
預設單位:秒
預設值:0
;process_control_timeout = 0
子程式等待master程式對訊號的回應。有效的時間單位:s(econds), m(inutes), h(ours), or d(ays)。預設值為0;
;daemonize = yes
將FPM轉職後臺執行。如果設定為“no”,那麼FPM會執行在前臺,這種情況用於除錯。
預設值為“yes”;
第三部分、程式池的定義
通過監聽不同的埠和不同的管理選擇可以定義多個不同的子程式池。程式池的名字將被用於記錄和統計。對於FPM能夠處理的程式池數目的多少這個沒有限制。
[www]
定義一個新的程式池,命名為“www”。變數$pool可以在任何指令中使用,它將會替代相應的程式池名字。例如在這裡是www。
;prefix = /path/to/pools/$pool
對於每個池的字首,它僅可以應用在下列的指令中:
- 'slowlog'
- 'listen' (unixsocket)
- 'chroot'
- 'chdir'
- 'php_values'
- 'php_admin_values'
如果沒有設定字首,那麼全域性的簽字(或者/usr/local/php5.3.4)將被應用。
注意:該指令也可以是相對於全域性字首。
預設值:沒有(none)。
listen = 127.0.0.1:9000
接受FastCGI請求的IP地址,有效的語法如下:
'ip.add.re.ss:port' — 在指定的IP地址和埠號上監聽TCP套接字;
'port' — 在所有IP地址的指定埠上監聽TCP套接字;
'/path/to/unix/socket' — 在unix套接字上監聽。
注意:“127.0.0.1:9000”這個值是強制性的。
;listen.backlog = -1
該指令用於設定listen(2) backlog。如果設定為“-1”,那麼就意味著不受限制。預設值為:128(FreeBSD 和 OpenBSD為-1);
;listen.allowed_clients = 127.0.0.1
列出允許FastCGI客戶端連線的ipv4 IP地址。這個指令與原來PHP FCGI (5.2.2+)的環境變數FCGI_WEB_SERVER_ADDRS相等。每一個地址之間需要使用逗號隔開,如果該指令的值為空,那麼該程式池將接受從任何地址的的請求連線。預設為any,即接受任何連線。
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0666
設定unix套接字許可權,如果使用它,為了允許從web伺服器連線,在Linux中必須設定讀/寫許可權。許多源於BSD的系統允許連線而不管許可權問題。預設值:ser 和 group都被設定為執行FPM的使用者,而mode設定為0666。
user = nobody
group = nobody
執行FPM程式的使用者和組,該使用者和組必須在Unix系統中存在。
注意:user是強制的,必須設定,如果group沒有設定,那麼預設user的組將被使用。
pm = dynamic
選擇程式管理器如何控制子程式的數目。
可能的值:
static - 對於子程式的開啟數目給定一個鎖定的值(pm.max_children);
dynamic - 子程式的數目為動態的,它的數目是基於下面指令的值:
pm.max_children - 同一時刻能夠存活的最大子程式數目。
pm.start_servers - 在啟動時啟動的子程式數目。
pm.min_spare_servers - 處於“空閒('idle')”狀態(等待處理)的最小子程式。如果空閒程式的數目少於該值,那麼相應的子程式將會被建立。
pm.max_spare_servers - 最大的空閒子程式數目,如果空閒的子程式數目大於這個數目,那麼相應的子程式將會被殺掉。
注意: dynamic為強制值。
pm.max_children = 50
當pm被設定為“static”的時候,該指令的值表示為開啟php-fpm數目數;
當pm被設定為“dynamic”的時候,該指令的值表示被建立的最大子程式數目。
該值設定了能夠同時提供請求的最大限制數目。相當於在Apache中mpm_prefork下的指令ApacheMaxClients的功能。相當於以前PHP CGI的環境變數PHP_FCGI_CHILDREN。
注意:無論pm被設定為“static”還是“dynamic”,該指令都會被使用。
注意:該值是強制的。
;pm.start_servers = 20
在啟動FPM時建立的子程式。
注意:僅將pm設定為“dynamic”時使用。
預設值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;pm.min_spare_servers = 5
期望空閒程式的最小值。
注意:僅當將pm設定為“dynamic”時才使用該指令。
;pm.max_spare_servers = 35
期望空閒程式的最大值。
注意:僅當將pm設定為“dynamic”時才使用該指令。
;pm.max_requests = 500
在派生出新的子程式之前,每一個子程式應該處理的請求數目。在第三方庫中這個對於解決記憶體溢位很有用。如果將該值設定為“0”,那麼處理的請求將不會收到限制。相當於PHP_FCGI_MAX_REQUESTS。預設值為0。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-733322/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Git配置配置檔案Git
- webpack4配置(1)-打包一個js檔案WebJS
- vim配置檔案
- 8.4.4 配置檔案
- nginx配置檔案Nginx
- MySQL配置檔案MySql
- 【SpringBoot】配置檔案Spring Boot
- 配置檔案vimrc
- Nginx 配置檔案Nginx
- gitignore 檔案配置Git
- Maven 配置檔案Maven
- Springboot配置檔案Spring Boot
- mysql 配置檔案MySql
- docker 配置檔案Docker
- Maven配置檔案Maven
- SpringBoot(配置檔案)Spring Boot
- 深入淺出Tomcat/1- 來歷和配置檔案Tomcat
- mongodb配置檔案常用配置項MongoDB
- 【Python】配置檔案配置路徑Python
- php生成配置檔案config.php 生成陣列配置檔案PHP陣列
- Flink 從 0 到 1 學習 —— Flink 配置檔案詳解
- Nginx基礎02:配置檔案nginx.conf(Part1)Nginx
- 理解 Typescript 配置檔案TypeScript
- 3 springboot配置檔案Spring Boot
- Xcode配置檔案xcconfigXCode
- 【Mongo】mongo配置檔案Go
- Spring Boot 配置檔案Spring Boot
- Git修改配置檔案Git
- Linux常用配置檔案Linux
- Spring檔案最全配置Spring
- 熱更新配置檔案
- C#配置檔案C#
- 後端配置檔案後端
- 四、nvim配置檔案
- ssm的配置檔案SSM
- 【SpringBoot】YAML 配置檔案Spring BootYAML
- SpringBoot-配置檔案Spring Boot
- Golang 專案之配置檔案Golang
- SpringBoot專案配置檔案加密Spring Boot加密