php-fpm
注:FastCGI 是一种常用于提高交互式应用程序(如 Web 服务器)性能的协议。它扩展和改进了早期的 CGI(Common Gateway Interface)标准,提供了一种更高效、更可扩展的方式来处理请求PHP-FPM(PHP FastCGI Process Manager)是一种专门为处理高并发环境下的 PHP 脚本而设计的工具。它是 PHP 的一个进程管理器,主要用于提高网站的性能和稳定性,特别是在高负载情况下。PHP-FPM 是运行在 FastCGI 模式下的 PHP 解释器的一个实现
PHP-FPM 是一个非常强大的工具,专为高并发和高性能环境下的 PHP 应用而设计。通过合理配置和优化,可以显著提高 PHP 应用的响应速度和稳定性
# PHP-FPM 的主要功能和特点
- 进程管理:
- PHP-FPM 管理多个 PHP 工作进程,允许 PHP 解释器以多进程模式运行,以提高并发处理能力
- 负载均衡:
- 它可以通过配置进程池来平衡负载,确保请求能够均匀分布到不同的进程中,防止某个进程过载
- 动态子进程生成:
- PHP-FPM 能根据需要动态地启动和关闭 PHP 子进程,从而更好地利用服务器资源
- 日志功能:
- 它提供了详细的日志记录功能,帮助开发者和系统管理员监控和排查问题
- 慢请求管理:
- PHP-FPM 可以记录执行时间过长的请求,便于性能优化和故障排除
- 配置灵活:
- PHP-FPM 提供了灵活的配置选项,可以针对不同的应用场景进行优化配置
# 安装和配置 PHP-FPM
# 安装 PHP-FPM
在大多数 Linux 发行版上,可以通过包管理器安装 PHP-FPM。例如,在 Ubuntu 上,可以使用以下命令安装 PHP-FPM:
sudo apt update
sudo apt install php-fpm
1
2
2
# 配置 PHP-FPM
PHP-FPM 的主要配置文件通常位于 /etc/php/<version>/fpm/php-fpm.conf。此外,每个进程池的配置文件位于 /etc/php/<version>/fpm/pool.d/ 目录下
典型的 php-fpm.conf 配置文件示例:
[global]
pid = /run/php/php-fpm.pid
error_log = /var/log/php-fpm.log
include=/etc/php/<version>/fpm/pool.d/*.conf
1
2
3
4
5
2
3
4
5
一个典型的进程池配置文件示例(如 www.conf):
[www]
user = www-data
group = www-data
listen = /run/php/php-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout = 5s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 启动和管理 PHP-FPM
安装完成并配置好 PHP-FPM 后,可以通过以下命令启动和管理 PHP-FPM 服务:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl status php-fpm
1
2
3
2
3
brew services start php
brew services stop php
brew services restart php
1
2
3
2
3
// Make sure to add code blocks to your code group
在大多数现代 Linux 发行版上,使用 systemctl 命令可以方便地管理 PHP-FPM 服务
# 验证 PHP-FPM 是否在运行
可以通过检查 PHP-FPM 的监听端口或套接字来确认其是否正在运行:
lsof -Pni :9000
1
或检查套接字文件:
ls -la /usr/local/var/run/php-fpm.sock
1
如果看到 PHP-FPM 正在监听相应的端口或套接字文件存在且有适当的权限,则 PHP-FPM 运行正常
上次更新: 2024/12/01, 17:09:08