温馨提示×

ubuntu怎么优化thinkphp性能

小樊
46
2026-09-28 17:49:13
栏目: 编程语言

在 Ubuntu 上优化 ThinkPHP(无论是 5.x 还是 6.x / 8.x)性能,一般可以从 系统层、PHP 层、ThinkPHP 层、缓存与数据库、Web 服务器 几个方面入手。下面给你一套比较实战的优化方案。


一、系统与 Web 服务器优化

1. 使用 Nginx(推荐)

比 Apache 更适合 ThinkPHP 高并发。

server {
    listen 80;
    server_name example.com;
    root /var/www/html/public;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

✅ 重点:

  • 根目录指向 public
  • 开启 try_files

2. 开启 OPcache(非常重要)

编辑 PHP 配置:

sudo vim /etc/php/8.1/fcli/php.ini
# 或 fpm
sudo vim /etc/php/8.1/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  # 生产环境

重启 PHP:

sudo systemctl restart php8.1-fpm

二、ThinkPHP 自身优化

1. 开启生产模式

.env

APP_DEBUG = false

2. 路由缓存(TP6 / TP8)

php think optimize:route

3. 配置缓存

php think optimize:config

4. 类库映射(TP5 有效,TP6 可忽略)

php think optimize:autoload

5. 使用单例 / 依赖注入

❌ 错误:

Db::name('user')->where(...)->find();

✅ 推荐:

public function __construct(User $user)
{
    $this->user = $user;
}

三、缓存优化(核心)

1. 使用 Redis 替代文件缓存

.env

CACHE_TYPE=redis
CACHE_HOST=127.0.0.1
CACHE_PORT=6379

安装 Redis:

sudo apt install redis-server

2. Session 使用 Redis

SESSION_DRIVER=redis

3. 数据库查询缓存

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

四、数据库优化

1. 开启慢查询日志

SHOW VARIABLES LIKE 'slow_query_log';

2. 添加索引

ALTER TABLE user ADD INDEX idx_status (status);

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

如果你用 ThinkPHP + Swoole:

'pool' => [
    'database' => true
]

五、PHP & Composer 优化

1. Composer 优化

composer install --optimize-autoloader --no-dev

2. 升级 PHP 版本

推荐:

  • ✅ PHP 8.1 / 8.2 / 8.3
  • ❌ PHP 7.2 及以下

六、高级方案(高并发)

1. ThinkPHP + Swoole

composer require topthink/think-swoole
php think swoole

性能可提升 5~10 倍


2. 静态资源走 CDN

  • JS / CSS / 图片
  • 减少 PHP 请求压力

七、推荐生产环境组合(最佳实践)

✅ Ubuntu 22.04
✅ Nginx
✅ PHP 8.2 + OPcache
✅ Redis
✅ ThinkPHP 8
✅ APP_DEBUG=false
✅ 路由 + 配置缓存


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

  • ThinkPHP 版本(5 / 6 / 8)
  • 是否使用 Swoole
  • 当前 QPS / 并发情况

我可以给你 针对性更强的优化方案。

0 踩