linux

LNMP中如何优化PHP-FPM配置

小樊
45
2025-09-24 19:43:55
栏目: 编程语言

在LNMP(Linux, Nginx, MySQL, PHP-FPM)架构中,优化PHP-FPM配置可以显著提高网站性能。以下是一些常见的优化建议:

1. 调整进程管理

PHP-FPM使用两种进程管理方式:staticdynamic。默认情况下,大多数系统使用dynamic

Static模式

pm = static
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

Dynamic模式

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

2. 调整请求处理超时

request_terminate_timeout = 30s

这个设置可以防止长时间运行的PHP脚本占用资源。

3. 启用慢查询日志

slowlog = /var/log/php-fpm/slow.log
slowlog_timeout = 10s

这有助于识别和优化慢查询。

4. 调整内存限制

memory_limit = 128M

根据应用需求调整内存限制。

5. 启用OPcache

确保PHP-FPM配置中启用了OPcache,这可以显著提高PHP脚本的执行速度。

[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

6. 调整日志级别

catch_workers_output = yes
php_admin_value[error_log] = /var/log/php-fpm/error.log
php_admin_flag[log_errors] = on

确保错误日志记录详细信息,便于调试。

7. 使用TCP连接

如果PHP-FPM和Nginx在同一台服务器上,使用Unix socket而不是TCP连接可以提高性能。

listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data

8. 调整进程优先级

process.priority = -10

根据需要调整进程优先级。

9. 监控和调整

使用监控工具(如Prometheus和Grafana)来监控PHP-FPM的性能,并根据实际情况调整配置。

示例配置文件

以下是一个示例的php-fpm.conf文件:

[global]
daemonize = yes
pid = /run/php/php7.4-fpm.pid
error_log = /var/log/php-fpm/error.log

[www]
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
request_terminate_timeout = 30s
memory_limit = 128M
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

根据实际情况调整这些配置,以达到最佳性能。

0
看了该问题的人还看了