Rootop 服务器运维与web架构

php5.3之后版本配置php-fpm.conf

| 暂无评论

从php5.3版本开始,php默认已经嵌入了php-fpm的支持,并且php-fpm的配置文件php-fpm.conf 也使用了和php.ini的同样格式。
默认的配置文件中有很多内容,大多都被注释掉了,注意php-fpm.conf 使用 ‘;’ 注释。

  1. [global]
  2. pid = /usr/local/php/var/run/php-fpm.pid
  3. error_log = /usr/local/php/var/log/php-fpm.log
  4. [www]
  5. listen = /tmp/php-fcgi.sock
  6. user = php-fpm
  7. group = php-fpm
  8. pm = dynamic
  9. pm.max_children = 50
  10. pm.start_servers = 20
  11. pm.min_spare_servers = 5
  12. pm.max_spare_servers = 35
  13. pm.max_requests = 500
  14. rlimit_files = 1024

这些已经可以满足大多应用,但是有时候会有一些特殊需求。简单解释一下配置中的各个参数的含义:
首先,配置分为两个部分,第一部分 [global] 为全局配置项,用来定义日志、pid等相关内容。
第二部分[www], 这个为资源池配置项,其中[]内的字符串为自定义内容,我们也可以写成域名,比如 [www.example.com]
这部分内容用来定义,各个域名所使用的资源分配。
1. listen 用来定义该资源池所监听的socket,也可以是tcp形式;
2. user、group用来定义php-fpm以哪个账号和组的身份来运行;
3. pm = dynamic   如何控制子进程,选项有static和dynamic。
如果选择static,则由pm.max_children指定固定的子进程数。
如果选择dynamic,则由以下参数决定:
pm.max_children ,子进程最大数
pm.start_servers ,启动时的进程数

pm.start_servers默认值的公式:min_spare_servers + (max_spare_servers – min_spare_servers) / 2

pm.min_spare_servers ,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers ,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
对于专用服务器,pm可以设置为static。

4. pm.max_children 这个选项来定义,最大开启的php-fpm子进程数量,根据机器的硬件配置来定义,如果内存高于4G,设置为200或者以上,如果低于4G,比如1G内存,设置50就可以了

5.  pm.max_requests   设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 ’0′ 则一直接受请求. 设置为500就可以了。

6. rlimit_files = 1024  设置文件打开描述符的rlimit限制.  一般情况下,设置为1024就足够了。

除了这些配置参数外,另外还有几个常用的,那就是sloglog和open_basedir

7. slowlog = log/www.discuz.net.slow  这里定义,slow log的路径,当php脚本执行时间超过 request_slowlog_timeout 值时,会记录slowlog 它用来帮助我们排查程序哪里有问题,提高程序的处理速度。

8. request_slowlog_timeout = 1 php脚本执行超时时间

9. php_admin_value[open_basedir]=/data/www/:/tmp/
这个选项是非常关键的安全选项,把php的执行账号只限定在指定的目录里,这样可以防止网站被入侵后,黑客获取其他站点的文件信息和服务器的某些关键信息。

php-fpm.conf 中可以定义多个 资源池,也就是说,我们还可以继续再写一个不同的:

  1. [www2]
  2. listen = /tmp/php-fcgi2.sock
  3. user = nobody
  4. group = nobody
  5. pm = dynamic
  6. pm.max_children = 50
  7. pm.start_servers = 20
  8. pm.min_spare_servers = 5
  9. pm.max_spare_servers = 35
  10. pm.max_requests = 500
  11. rlimit_files = 1024

其中,各个选项都可以和 [www]有所不同。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/2643.html

作者:Venus

服务器运维与性能优化

发表回复