[root@centos6 php]# ls etc/

pear.conf php-fpm.conf php.ini

其中php.ini是php全局配置;php-fpm.conf是管理php-fpm服务配置。

配置php-fpm服务,需要清空其原有内容,写入新的内容:

[root@centos6 php]# > etc/php-fpm.conf

[root@centos6 php]# vim 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]#pool的名字

listen = /tmp/www.sock#监听的sock或者IP:port,可以自定义www.sock

user = php-fpm#属主php-fpm

group = php-fpm#属组php-fpm

listen.owner = nobody#监听的用户,nginx-->nobody

listen.group = nobody#监听的组,nginx-->nobody

pm = dynamic#生成子进程的方式,dynamic更高效,如果改为static,则一直都是max_children个子进程

pm.max_children = 50#最大子进程数

pm.start_servers = 20#一开始启动20个子进程

pm.min_spare_servers = 5#空闲时最少启动5个子进程

pm.max_spare_servers = 35#空闲时最多启动35个子进程

pm.max_requests = 500#每个子进程整个生命周期处理500个请求就自动销毁

rlimit_files = 1024#每个子进程所使用文件描述符的限制,稍大也可

[www1]

listen = /tmp/www1.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

检查无误后重启php-fpm服务:

[root@centos6 php]# /usr/local/php/sbin/php-fpm -t

[13-Jan-2017 23:14:06] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

[root@centos6 php]# /etc/init.d/php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm done

php-fpm可以有多个不同的pool(如上面的www和www1就是两个pool),不同的网站不同的域名使用不同的pool,不同的pool就需要监听不同的sock,或者是不同的IP:port。可以把不同的域名对应到不同的pool

比如我们可以在这个目录下写多个虚拟主机,让不同的虚拟主机使用不同的pool,如www.test.com使用www,www.aaa.com使用www1等等,使用不同的pool,可以设置不同的权限。并且可以避免使用一个pool造成多个网站同时宕机的危险。

[root@centos6 vhosts]# ls

default.conf test.conf

只需在每个虚拟主机中指定自己使用哪个pool即可

可以给每个池子加上slow.log,查看网站哪里造成缓慢以追踪网站性能,也可以给每个网站设置可访问的目录

[root@centos6 php]# vim 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/www.sock

user = php-fpm

group = php-fpm

listen.owner = nobody

listen.group = nobody

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_slog.log

request_slowlog_timeout = 1

php_admin_value[open_basedir]=/data/www/:/tmp/

[www1]

listen = /tmp/www1.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

[root@cp1 vhosts]# /usr/local/php/sbin/php-fpm -t

[23-Feb-2017 00:21:02] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

[root@cp1 vhosts]# /etc/init.d/php-fpm restart

Gracefully shutting down php-fpm . done