温馨提示×

ubuntu thinkphp怎样提升性能

小樊
44
2026-10-13 10:18:57
栏目: 编程语言

在 Ubuntu + ThinkPHP 环境下提升性能,可以从 系统层、PHP 层、ThinkPHP 层、数据库层、缓存层、架构层 多个方面入手。下面给你一套比较实用、可落地的优化方案。


一、系统 & PHP 基础优化(非常重要)

1. 使用 PHP 8.x(推荐 8.1 / 8.2 / 8.3)

ThinkPHP 6 / 8 对 PHP 8 支持很好,性能提升明显。

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

2. 使用 PHP-FPM + Nginx(不要用 Apache mod_php)

Nginx + PHP-FPM 性能远高于 Apache。

sudo apt install nginx php8.2-fpm

Nginx 示例配置(简化):

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

3. 开启 OPcache(必开)

sudo apt install php8.2-opcache

/etc/php/8.2/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  # 生产环境

重启:

sudo systemctl restart php8.2-fpm

二、ThinkPHP 自身优化

1. 开启生产模式

.env

APP_DEBUG = false

2. 开启路由缓存(TP6/TP8)

php think optimize:route

3. 开启配置缓存

php think optimize:config

4. 开启类库映射(老版本 TP5)

php think optimize:autoload

5. 使用单应用模式(如业务不复杂)

减少多应用加载开销。


三、缓存层优化(核心)

1. 使用 Redis(强烈推荐)

sudo apt install redis-server
sudo apt install php8.2-redis

ThinkPHP 配置:

'cache' => [
    'default' => 'redis',
    'stores' => [
        'redis' => [
            'type' => 'redis',
            'host' => '127.0.0.1',
            'port' => 6379,
        ],
    ],
],

使用:

Cache::set('key', $data, 3600);

2. 数据库查询缓存

Db::name('user')->cache(60)->select();

四、数据库优化(最容易瓶颈)

1. 使用连接池(Swoole 场景)

普通 FPM 模式下,确保:

  • 使用 持久连接
'params' => [
    \PDO::ATTR_PERSISTENT => true,
],

2. 索引优化(最重要)

EXPLAIN SELECT * FROM user WHERE email = 'a@b.com';

常见优化:

  • WHERE / ORDER BY / JOIN 字段加索引
  • 避免 SELECT *
  • 大表分页用 id > ?

3. 读写分离(高并发)

'hostname' => ['192.168.1.1','192.168.1.2'],
'deploy'   => 1,

五、静态资源 & CDN

  • JS / CSS / 图片走 CDN
  • Nginx 开启 gzip
gzip on;
gzip_types text/css application/javascript;

六、进阶性能方案(高并发)

1. ThinkPHP + Swoole

composer require topthink/think-swoole

优势:

  • 常驻内存
  • 无 FPM 开销
  • QPS 提升 5~10 倍

2. 队列异步处理

composer require topthink/think-queue

将:

  • 邮件
  • 日志
  • 数据统计

放到队列执行。


七、性能检测工具

  • ab
ab -n 1000 -c 100 http://localhost/
  • blackfire
  • xhprof
  • Nginx + Prometheus + Grafana

八、总结(优先级)

✅ 必做(性价比最高)

  1. PHP 8 + OPcache
  2. Nginx + PHP-FPM
  3. APP_DEBUG=false
  4. Redis 缓存
  5. 数据库索引

✅ 进阶

  • Swoole
  • 队列
  • 读写分离

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

  • ThinkPHP 版本(5.1 / 6 / 8)
  • 并发量(每天多少请求)
  • 是否用 Swoole / 队列

我可以给你一套 针对你项目的精准优化方案。

0 踩