看分享,阅见世界,分享此刻。是一个整理、分享,搜索的网站。智阅无界,洞见未来。
  • 文章
  • 专题
  • 文章
  • 登录
  • 注册
计科知识库 计科知识库 8天前

php-fpm优化设置参考

php nginx

php-fpm优化设置参考,先回顾 一下,php源码编译时的一个参数
cd php-5.6.2

  1. ./configure --enable-fpm --enable-mbstring --with-mysql=/usr/local/mysql

上述命令中–enable-fpm的作用是开启php的fastcgi功能即开启php-fpm功能,–with-mysql=/usr/local/mysql是启用php支持mysql的功能,/usr/local/mysql是mysql数据库的安装路径。

LNMP环境中的nginx是不支持php的,需要通过fastcgi来处理有关php的请求。而php需要php-fpm这个组件来支持。
在php5.3.3以前的版本php-fpm是以一个补丁包的形式存在的,而php5.3.3以后的php-fpm只需要在安装php-fpm开启这个功能即可。这个也就是前边,我们再配置php使用到的那个命令–enable-fpm。

php-fpm功能开启后,我们还需要配置php-fpm。其实php-fpm的配置文件在安装php时,已经为我们提供了一个配置文件的模版。该模版为/usr/local/etc/php-fpm.conf.default,我们现在只需要复制一份该文件,并重命名为php-fpm.conf,如下:
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
为了让php-fpm已服务的形式启动。我们需要复制php安装目录下/sapi/fpm/init.d.php-fpm文件。如下:

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
php-fpm文件目前没有执行权限。赋予php-fpm执行权限,并启动php-fpm,如下:

chmod a+x /etc/init.d/php-fpm

/etc/init.d/php-fpm start

netstat -tunlp |grep 9000


php-fpm配置文件

/usr/local/php/etc/php-fpm.conf 管理php-fpm服务的配置文件
/usr/local/php/etc/php-fpm.ini php全局配置文件
vim /usr/local/php/etc/php-fpm.conf 可以设置多个pool

[global] ; pool 池
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/www.sock ;监听的sock或者IP+端口号
user = php-fpm
group = php-fpm
pm = dynamic ;动态的 使用static下面的pm配置不生效
pm.max_children = 50 ;子进程最多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

说明:
a. [global] 部分是全局配置,指定了服务指定的pid文件和错误日志路径
b. [www] 是一个pool(池)www是池的名称,如果有多个池就把这段内容复制一份粘贴在下面,并根据池的名称,以及listen的路径
c. listen 监听的sock或者IP+端口号。
监听的sock文件,这里这个文件需要和nginx的虚拟主机里面指定的这个文件名对应起来,多个站点最好是多个pool使用不同的sock文件,和pool名称
d. user 管理服务的用户名
e. group 管理服务的用户组
f. pm 池的方式:分为动态和静态,dynamic是动态,如果是静态static的话,那么下方pm.start_servers = 20生效,其他的PM配置选项均不生效
g. pm.max_children 表示php-fpm最大可以启动多少个子进程
h. pm.start_servers 表示服务一开启就启动多少个进程
i. pm.min_spare_servers 表示当php-fpm空闲时最少保留子进程数量,如果空闲时进程不够,那么会自动创建。
j. pm.max_spare_servers 表示当php-fpm空闲时最多保留子进程数量,如果空闲时进程超过,那么会自动销毁。
k. pm.max_requests 表示一个子进程可以接授多少个请求,如是设置为500,那么一个子进程受理到500个以后就会自动销毁
l. rlimit_files 每个进程使用使用文件描述符的限制、表示每个进程可以访问的文件数量。这个标签的值必须和Linux内核打开文件数关联起来,例如要将此值设置为65535,就必须在Linux命令行执行’ulimit -HSn 65536’。(ulimit –n可以查看对应数值)
————————————————
参考文献数据与网址如下
https://www.cnblogs.com/archoncap/p/4260106.html
https://blog.csdn.net/qq_32642039/article/details/76789503

  • © 2025 看分享 阅见世界,分享此刻。
  • 建议
  • | 鄂ICP备14016484号-7

    鄂公网安备 42068402000189

    访问微博看分享