温馨提示×

Ubuntu怎么优化PHP性能

小樊
60
2026-07-13 20:14:34
栏目: 编程语言

在 Ubuntu 上优化 PHP 性能,通常可以从 PHP 配置、OPcache、PHP-FPM、代码层面、系统与 Web 服务器 几个方面入手。下面给你一套比较实用、可落地的优化方案(适用于 Ubuntu 20.04/22.04,PHP 7.4 / 8.x)。


一、选择合适的 PHP 版本

优先使用 PHP 8.x

  • PHP 8.0+ 在性能、JIT、类型系统上都有明显提升
  • 老项目至少用 PHP 7.4+

查看当前版本:

php -v

升级示例(PHP 8.2):

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

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

OPcache 能缓存编译后的 PHP 脚本,性能提升 30%~100%

1️⃣ 安装 OPcache

一般已默认安装,确认:

php -m | grep opcache

2️⃣ 优化配置(推荐)

编辑:

sudo nano /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

重启 PHP-FPM:

sudo systemctl restart php8.2-fpm

三、优化 PHP-FPM(高并发关键)

PHP-FPM 比 mod_php 更适合生产环境。

1️⃣ 选择进程管理模式

编辑:

sudo nano /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

2️⃣ 根据服务器内存调整

经验公式:

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

查看 PHP 进程内存:

ps aux | grep php-fpm

四、调整 PHP 本身参数

编辑 php.ini

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

常见优化项

memory_limit = 256M
max_execution_time = 60
upload_max_filesize = 50M
post_max_size = 50M
expose_php = Off

五、Web 服务器优化(Nginx / Apache)

✅ Nginx + PHP-FPM(推荐)

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
}

✅ Apache

  • 使用 mpm_event + PHP-FPM
  • 避免 prefork + mod_php

六、使用 JIT(PHP 8+)

JIT 对 CPU 密集型提升明显(如计算、图像处理)

确认开启:

opcache.jit=1255
opcache.jit_buffer_size=128M

查看是否生效:

php -i | grep jit

七、代码层面优化(非常重要)

即使配置再好,烂代码也救不了性能。

✅ 优化建议:

  • 避免重复查询数据库
  • 使用 PDO 预处理
  • 使用缓存(Redis / Memcached)
  • 减少 file_get_contents()
  • 避免在循环中做 IO 操作
  • 使用 Composer 的 --no-dev --optimize-autoloader

八、使用缓存系统

Redis 示例

sudo apt install redis-server php8.2-redis

PHP 中:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

九、系统层面优化

1️⃣ 文件描述符

ulimit -n

建议 ≥ 65535

2️⃣ 禁用不必要服务

sudo systemctl disable bluetooth

十、性能测试与监控

工具推荐

  • ab(Apache Bench)
  • wrk
  • php-fpm status
  • htop
  • opcache_get_status()

示例:

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

✅ 推荐组合(生产环境)

项目 推荐
PHP 8.2 / 8.3
运行方式 PHP-FPM
缓存 OPcache + Redis
Web 服务器 Nginx
系统 Ubuntu 22.04 LTS

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

  • ✅ 用的是 Nginx 还是 Apache
  • ✅ PHP 版本
  • ✅ 是 Laravel / WordPress / 自研项目
  • ✅ 服务器配置(CPU / 内存)

我可以给你一套 针对你环境的精准优化方案

0