温馨提示×

debian php如何优化

小樊
44
2026-10-11 00:37:38
栏目: 编程语言

在 Debian 上优化 PHP,通常可以从系统层面、PHP 配置、PHP-FPM(如适用)、Opcode 缓存、Web 服务器配合、代码与扩展几个方向来做。下面给你一套比较实用、可落地的优化清单。


一、选择合适的 PHP 版本(最重要)

Debian 上尽量使用较新且受支持的 PHP:

apt list -a php

推荐:

  • Debian 11 → PHP 8.1/8.2
  • Debian 12 → PHP 8.2/8.3

升级示例(用 sury 源):

apt install lsb-release ca-certificates apt-transport-https
curl -sSL https://packages.sury.org/php/README.txt
# 按官方说明添加源
apt install php8.2 php8.2-fpm php8.2-cli

二、使用 PHP-FPM(而不是 mod_php)

Nginx / 高并发场景必须用 PHP-FPM。

apt install php8.2-fpm

查看状态:

systemctl status php8.2-fpm

三、核心 php.ini 优化

编辑:

/etc/php/8.2/fpm/php.ini

1. 禁用危险 & 不必要功能

expose_php = Off
disable_functions = exec,passthru,shell_exec,system,proc_open,popen

2. 上传 & 执行时间

upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 30
max_input_time = 60
memory_limit = 128M   ; 按应用调整

3. 错误与日志

display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

四、OPcache(必须开)

apt install php8.2-opcache

/etc/php/8.2/fpm/conf.d/10-opcache.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0   ; 生产环境

重启:

systemctl restart php8.2-fpm

五、PHP-FPM 进程优化(关键)

配置文件:

/etc/php/8.2/fpm/pool.d/www.conf

动态模式(通用)

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

高并发可用 static

pm = static
pm.max_children = 100

计算方法:

max_children ≈ 可用内存 / 单进程内存

查看进程内存:

ps -ylC php-fpm8.2 --sort:rss

六、配合 Web 服务器优化

Nginx 示例

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_read_timeout 60;

启用:

  • gzip
  • brotli
  • 静态资源缓存

七、禁用无用扩展

减少内存与攻击面:

php -m

常见可禁:

  • sqlite3(不用时)
  • pdo_sqlite
  • ftp

八、使用 Redis / Memcached 缓存

减少数据库压力:

apt install redis-server php8.2-redis

Laravel / WordPress 都强烈推荐。


九、监控与压测

  • htop
  • php-fpm status
  • ab / wrk
  • slow log:
slowlog = /var/log/php-fpm-slow.log
request_slowlog_timeout = 5s

十、生产环境检查清单

✅ PHP 8.x
✅ PHP-FPM
✅ OPcache
✅ 合理 pm 配置
✅ 错误日志开启
✅ expose_php=Off
✅ Redis 缓存


如果你愿意,可以告诉我:

  • Debian 版本
  • PHP 版本
  • Web 服务(Nginx / Apache)
  • 应用类型(WordPress / Laravel / 自建)

我可以给你针对性配置模板。

0 踩