温馨提示×

怎样优化ubuntu php配置

小樊
39
2026-10-01 12:06:20
栏目: 编程语言

优化 Ubuntu 上的 PHP 配置,通常分为 PHP 运行模式(FPM / CLI / Apache mod_php)、php.ini 参数调优、OPcache / 缓存加速、资源与进程管理 以及 安全加固 几个方面。下面给你一套比较实用、可落地的优化指南(以 PHP 8.x + Ubuntu 20.04/22.04 + Nginx/FPM 为例,Apache 类似)。


一、确认 PHP 运行方式

php -v
php -m | grep fpm

常见组合:

  • Nginx → php-fpm
  • Apache → mod_php 或 php-fpm
  • 命令行 → php-cli

不同模式配置文件位置不同:

# FPM
/etc/php/8.x/fpm/php.ini
/etc/php/8.x/fpm/pool.d/www.conf

# CLI
/etc/php/8.x/cli/php.ini

二、php.ini 核心参数优化(Web 场景)

编辑:

sudo nano /etc/php/8.x/fpm/php.ini

1. 内存与执行时间

memory_limit = 256M        ; 普通应用 128~512M
max_execution_time = 30    ; API 可 60,脚本批处理可 300
max_input_time = 60

2. 上传与 POST

upload_max_filesize = 32M
post_max_size = 48M
max_file_uploads = 20

3. 错误与日志

display_errors = Off
log_errors = On
error_log = /var/log/php/php-error.log

4. 会话与缓冲

session.gc_probability = 1
session.gc_divisor = 1000
session.save_path = /var/lib/php/sessions

三、开启并优化 OPcache(非常重要)

sudo phpenmod opcache

编辑:

[opcache]
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   ; 生产环境关闭
opcache.jit_buffer_size=128M
opcache.jit=1205                ; PHP 8 JIT

⚠️ 开发环境 validate_timestamps=1


四、PHP-FPM 进程优化(性能关键)

编辑:

sudo nano /etc/php/8.x/fpm/pool.d/www.conf

1. 进程模式

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

计算参考:

max_children ≈ 内存 / 单个PHP进程(约30~50M)

2. 慢日志

slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout = 5s

3. 用户与权限

user = www-data
group = www-data

五、系统层面优化

1. 文件描述符

ulimit -n 65535

/etc/security/limits.conf

www-data soft nofile 65535
www-data hard nofile 65535

2. 临时目录权限

sudo chown -R www-data:www-data /var/lib/php/sessions

六、安全加固(生产必做)

expose_php = Off
allow_url_fopen = Off   ; 如不需要
disable_functions = exec,passthru,shell_exec,system

七、重启并验证

sudo systemctl restart php8.x-fpm
sudo systemctl restart nginx

验证:

php -i | grep opcache

八、常见优化误区

❌ 盲目调大 memory_limit
❌ 开 display_errors 到生产
❌ FPM pm.max_children 过大导致 OOM
❌ 忽略 OPcache


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

  • 用的是 Nginx 还是 Apache
  • PHP 版本
  • 是 Laravel / WordPress / 原生 PHP
  • 服务器 内存和CPU

我可以直接给你一套 精准配置模板。

0 踩