优化 Debian 上的 PHP,通常可以从系统层面、PHP 本身配置、PHP-FPM(如适用)、OPcache、以及应用层几个方面入手。下面按“实用 + 可落地”的方式给你一套优化思路。
Debian 自带源往往版本偏旧。
php -v
surury 或 deb.sury.org 源安装:apt install lsb-release ca-certificates apt-transport-https
curl -sSL https://packages.sury.org/php/README.txt
如果你用 Nginx 或现代 Apache,优先用 PHP-FPM
apt install php-fpm
好处:
编辑:
/etc/php/8.x/fpm/php.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0 ; 生产环境建议关闭
⚠️ 开发环境保留
validate_timestamps=1
memory_limit=256M
max_execution_time=30
max_input_time=60
post_max_size=32M
upload_max_filesize=32M
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
配置文件:
/etc/php/8.x/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
✅ 经验公式:
max_children ≈ 可用内存 / 单个 PHP 进程内存
例如:
slowlog = /var/log/php-fpm-slow.log
request_slowlog_timeout = 5s
ulimit -n
建议 ≥ 65535
编辑:
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
mount -t tmpfs tmpfs /tmp
fallocate -l 1G /swapfile
mkswap /swapfile
swapon /swapfile
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_read_timeout 60;
启用:
composer install --optimize-autoloader --no-dev
/etc/php/8.x/fpm/pool.d/www.conf
pm.status_path = /status
htopphp-fpm statusblackfire / tidewaysopcache status✅ PHP 8.2+
✅ PHP-FPM
✅ OPcache 开启
✅ pm = dynamic + 合理 max_children
✅ 禁用危险函数
✅ Nginx + gzip + HTTP/2
如果你愿意,可以告诉我:
我可以给你一套精确的配置参数。