说明:/usr/local/php/etc/php-fpm.conf 用于管理php服务
/usr/local/php/etc/php.ini php本身的全局配置文件
一、清空配置文件
清空命令: > /usr/local/php/etc/php-fpm.conf
二、编辑新的文件/usr/local/php/etc/php-fpm.conf
说明:www表示pool的名字;新增的pool,除了名字和sock不能相同,其他可以一致;不同主机,可以在配置文件中指定不同的pool,即指定不同的监听方式:fastcgi_pass unix:/tmp/php-fcgi.sock
内容如下:
[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_slow.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
解释:
listen = /tmp/php-fcgi.sock #较多采用socket监听方式,名字可自定义,默认是127.0.0.1:9000 listen.owner = nobody #nginx中默认监听的socket文件权限是所有者只读,属组和其他用户没有任何权限。所以,nginx的启动用户(咱们配置的是nobody)就没有办法去读这个socket文件,最终可能会导致502;或者配置listen.mode = 0666 listen.group = nobody pm = dynamic #动态,管理pm子进程,如果写成static,则除了pm.max_children,其他不管用 pm.max_children = 50 #子进程最大50个,由于php是阻塞的,1个进程只能同时处理一个php请求,max_children设置高可以同时处理更多的请求,但也意味着会占用更多的服务器资源 pm.start_servers = 20 #一开始启动20个 pm.min_spare_servers = 5 #空闲时,最小为5个 pm.max_spare_servers = 35 #空闲时,最多为35个 pm.max_requests = 500 #一个子进程在生命周期内共处理多少个请求,自动销毁,可以解决php内存泄露的问题。但如果这个值设置太小,造成php频繁重启,也会对性能造成影响 rlimit_files = 1024 #每一个进程所使用的文件描述符限制 slowlog = /tmp/www_slow.log # 增加slow日志,当网络访问慢时,可以查看该日志 request_slowlog_timeout = 1 # 当脚本执行时间超过1秒钟,就记录 php_admin_value[open_basedir]=/data/www/:/tmp/ # 用于不同域名来限制访问目录
三、pool池的体现
说明:根据配置文件,php-fpm可以启动多个pool池,分给不同的主机用,默认启动20个,如没有请求,则会一点一点损耗;不同的域名也可以使用相同的池子;分开的话,权限可以分开,一旦池子出现故障,可以避免其他网站同时挂掉
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。