1.5-php-fpm配置文件

/usr/local/php/etc/php-fpm.conf   是php服务的配置

/usr/local/php/etc/php.ini        是php软件的全局配置.如:时钟


主要配置的是php服务的配置,自带服务样板很乱,首先清空,插入代码

> /usr/local/php/etc/php-fpm.conf        清空文件    

vim /usr/local/php/etc/php-fpm.conf       其实删除注释后,也就是下面的代码

[global]

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log

[www]

listen = /tmp/php-fcgi.sock         监听的方式,一般为sockte 可以自定义,自动生成

user = php-fpm

group = php-fpm

pm = dynamic                  动态的,管理下面的代码

pm.max_children = 50          最大50个子进程

pm.start_servers = 20         一开始启动20子子进程,即启动php就启动20个进程

pm.min_spare_servers = 5      最小子进程5个

pm.max_spare_servers = 35     最多35个子进程

pm.max_requests = 500         一个子进程在它的生命周期内,一共处理500个请求。自动销毁

rlimit_files = 1024           每一个进程,它所使用的文件描述符的限制,大点也没关系

slowlog = /tmp/www_slow.log   追踪网站,排查网站慢的日志

request_slowlog_timeout = 1   脚本超时1秒,记录到上条路径的slow.log中

php_admin_value[open_basedir]=/data/www/:/tmp/  指定php有权限的目录

代码分为两个部分

1.global 全局配置,主要是pid和错误日志

2.www为服务配置

如果配置中pm = static 那么只有pm.max_children = 50生效,也就是启动就有50个进程,其它不生效。

建议使用dynamic 一开始会启动20个pool,如果空闲,则一个个销毁,直到最小5个为止。


多个pool的配置 不同域名,对应不同pool。有2个好处,1可以为不同的网站赋予不同的权限2一个网站挂掉,不影响其他pool的网站。

[global]

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log

[www]

listen = /tmp/www.sock

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

slowlog = /tmp/www_slow.log

request_slowlog_timeout = 1

[www1]                    改动1

listen = /tmp/www1.sock   改动2

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

slowlog = /tmp/www1_slow.log

request_slowlog_timeout = 1



课后答疑:

1:有两个问题1 这个listen = /tmp/php-fcgi.sock 什么时候写sock 什么时候用127.0.0.1:9000呢?

2 php-fmp里面php_admin_value[open_basedir] =/data/www/ 和nginx里面的虚拟主机配置文件root /data/aaa 如果这两个同时配置了那个目录会生效呢?

答:1. listen你愿意用哪个就哪个,都差不多,但有的人认为socket性能要比ip:port的形式高效,在我看来都差不多。

2. nginx配置的只是一个网站根目录,而php里面的open_basedir 是限定php的,你这样设置后,发现你的网站根本就不能运行了。


2:php-fpm设置了多个池子,如果需要每个pool指定不同的用户,那用户是在php编译安装时在这里--with-fpm-user=php-fpm如何绑定多个用户呢

答:上面那个是默认的,我们还可以在配置文件里定义额外的。


3:理解不了socket是什么

答:就是用来通信的文件,类似tcp/ip的通信机制,这种文件是unix/linux系统里面特有的。像mysql的数据通信,我们就可以使用socket文件通信。


你可能感兴趣的:(1.5-php-fpm配置文件)