基于 php-fpm 的配置详解
什么是 php-fpm
PHP-FPM(FastCGI Process Manager),是 PHP 官方提供的一个 FastCGI 进程管理器。它可以管理运行 PHP 的 FastCGI 进程,以便更好地使用服务器的资源并提高 PHP 应用程序的响应速度。
安装和启动 php-fpm
安装
php-fpm 可以通过包管理器进行安装,比如在 Ubuntu 系统中,可以通过以下命令进行安装:
sudo apt-get install php-fpm
启动
在安装完成后,我们需要启动 php-fpm 服务。可以通过以下命令来启动:
sudo service php-fpm start
配置 php-fpm
配置文件位置
php-fpm 的主要配置文件是 /etc/php-fpm.conf
或者 /etc/php/7.x/fpm/php-fpm.conf
,其中 7.x 是 PHP 的版本号。
配置内容
php-fpm 的配置文件中有许多配置项,下面介绍其中一些比较重要的配置项:
listen
: 指定 fpm 进程监听的地址和端口号,可以是 IP 地址+端口号(如 127.0.0.1:9000)或 UNIX 域套接字(如 /var/run/php/php7.4-fpm.sock)。user
和group
: 指定 php-fpm 进程的用户和用户组。process_manager
: 进程管理方式,可以选择 static、dynamic 或者 ondemand,用于控制运行的工作进程数。pm.max_children
: 动态模式下可以设置最大的工作进程数。pm.start_servers
、pm.min_spare_servers
、pm.max_spare_servers
: 动态模式下的初始、最小和最大启动的工作进程数。pm.max_requests
: 限制一个工作进程处理的最大请求数,用于避免内存泄漏。
在修改完配置文件后,我们需要重新加载 php-fpm,才能让配置生效:
sudo systemctl reload php7.x-fpm.service
示例
示例一
下面是一个简单示例:
[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
include = /etc/php-fpm.d/*.conf
[www]
listen = 127.0.0.1:9000
user = nginx
group = nginx
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests = 2000
这个示例中,我们指定了 fpm 进程监听在 127.0.0.1:9000 地址和端口号上,使用 nginx 用户运行进程,并使用动态模式(pm.dynamic),最多可以运行 50 个子进程。初始启动 5 个子进程,最小和最大的空闲进程数分别是 2 和 8。
示例二
下面是另一个示例:
[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
include = /etc/php-fpm.d/*.conf
[www]
listen = /var/run/php/php7.4-fpm.sock
user = apache
group = apache
pm = ondemand
pm.max_children = 20
pm.max_requests = 500
这个示例中,我们指定了 fpm 进程监听在 /var/run/php/php7.4-fpm.sock 上,使用 apache 用户运行进程,并使用按需模式(pm.ondemand),最多可以运行 20 个子进程。每个子进程最多处理 500 个请求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于php-fpm的配置详解 - Python技术站