温馨提示×

如何优化Ubuntu的PHP

小樊
45
2026-07-28 00:46:18
栏目: 编程语言

优化 Ubuntu 上的 PHP 可以从版本选择、配置调优、OPcache、FPM 参数、系统资源、扩展与监控等多个方面入手。下面给你一套实用、可落地的优化方案,适用于生产环境(Laravel / ThinkPHP / WordPress 等)。


一、选择合适的 PHP 版本

推荐使用 PHP 8.1 / 8.2 / 8.3(当前最新稳定)

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-fpm php8.2-cli

新版本在性能、JIT、类型系统上优于 7.x


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

Nginx + PHP-FPM 是标准组合

sudo systemctl status php8.2-fpm

确认运行:

ps aux | grep php-fpm

三、核心 PHP 配置优化(php.ini)

1️⃣ 修改 php.ini

sudo nano /etc/php/8.2/fpm/php.ini

推荐参数

memory_limit = 256M
max_execution_time = 60
upload_max_filesize = 64M
post_max_size = 64M
max_input_time = 60

四、OPcache 优化(非常重要)

1️⃣ 安装

sudo apt install php8.2-opcache

2️⃣ 配置 OPcache

编辑:

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

推荐配置:

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=50000
opcache.validate_timestamps=0   # 生产环境关闭
opcache.revalidate_freq=0
opcache.jit_buffer_size=128M
opcache.jit=1255

可提升 2~5 倍性能


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

配置文件

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

推荐配置(2~4 核服务器)

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?

max_children ≈ 可用内存 / 每个 PHP 进程内存

例如:

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

六、关闭不必要的扩展

减少内存和加载时间

php -m

禁用不用的扩展:

sudo phpdismod json xdebug

⚠️ 生产环境不要开启 xdebug


七、系统层面优化

1️⃣ 文件描述符限制

ulimit -n

编辑:

sudo nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

2️⃣ 调整 Nginx(如适用)

fastcgi_read_timeout 300;

八、使用 JIT(PHP 8+)

JIT 对 CPU 密集型程序有效(如大量计算)

已在 OPcache 中启用:

opcache.jit=1255
opcache.jit_buffer_size=128M

九、监控与压测

1️⃣ 查看 PHP-FPM 状态

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

启用:

pm.status_path = /status

2️⃣ 压测

ab -n 1000 -c 50 http://example.com/

十、一键优化检查清单 ✅

  • [ ] PHP 8.x
  • [ ] PHP-FPM
  • [ ] OPcache + JIT
  • [ ] FPM pm 参数合理
  • [ ] 关闭 xdebug
  • [ ] 系统 ulimit
  • [ ] 使用 Redis / Memcached 缓存

如果你愿意

你可以告诉我:

  • ✅ 服务器配置(CPU / 内存)
  • ✅ 使用的框架(Laravel / TP / WP)
  • ✅ 访问量(并发)

我可以 直接给你一套“定制版 PHP 优化参数”

0