温馨提示×

ubuntu thinkphp如何优化

小樊
40
2026-09-22 20:51:05
栏目: 编程语言

在 Ubuntu + ThinkPHP 环境下做性能优化,通常可以从 系统层、PHP 层、ThinkPHP 层、数据库层、缓存与部署 几个方面入手。下面给你一套比较实用、可落地的优化方案(以 Ubuntu + Nginx + PHP-FPM + ThinkPHP 6/8 为主)。


一、Ubuntu 系统层优化

1. 使用 Nginx 替代 Apache(推荐)

ThinkPHP 在 Nginx 下性能更好、资源占用更低。

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

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

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

2. 文件描述符 & 内核优化

ulimit -n 65535

/etc/sysctl.conf

net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
sysctl -p

二、PHP & PHP-FPM 优化

1. 使用最新稳定 PHP(推荐 8.1+)

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

2. php.ini 关键配置

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60

realpath_cache_size=4096K
realpath_cache_ttl=600

3. PHP-FPM 优化

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

pm = dynamic
pm.max_children = 120
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 60
pm.max_requests = 1000
systemctl restart php8.2-fpm

三、ThinkPHP 自身优化

1. 开启生产模式

.env

APP_DEBUG = false

2. 开启路由缓存

php think optimize:route

3. 开启配置缓存

php think optimize:config

4. 开启类库映射(TP6+ 已默认优化)

composer dump-autoload -o

5. 减少不必要的中间件

app/middleware.php

  • 移除调试、日志等生产环境不需要的中间件

四、数据库优化(MySQL / MariaDB)

1. 索引优化

EXPLAIN SELECT * FROM user WHERE email = 'a@b.com';
  • 避免 SELECT *
  • 高频查询字段加索引

2. MySQL 配置优化

/etc/mysql/my.cnf

innodb_buffer_pool_size = 1G
query_cache_type = 0
max_connections = 500

3. ThinkPHP 查询优化

// 错误
User::select();

// 正确
User::where('status', 1)->field('id,name')->limit(20)->select();

五、缓存策略(非常重要)

1. Redis 缓存

.env

CACHE_TYPE = redis
REDIS_HOST = 127.0.0.1
Cache::set('user_1', $data, 3600);

2. 页面静态化

  • 不常变页面 → 生成 HTML
  • 使用 Nginx 直接返回静态文件

六、Composer & 部署优化

1. 生产环境安装

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

2. 关闭 debug 工具

  • 删除 barryvdh/laravel-debugbar(如用)
  • 禁用 Tracy / Whoops

七、监控 & 压测

1. 基础监控

htop
iftop
mysqltuner

2. 简单压测

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

八、高级优化(可选)

  • Swoole / Workerman 运行 ThinkPHP
  • CDN 加速静态资源
  • 数据库读写分离
  • 队列(Redis Queue)异步处理

总结(快速 checklist ✅)

✅ Ubuntu + Nginx
✅ PHP 8 + Opcache
✅ ThinkPHP 关闭 DEBUG
✅ 路由 & 配置缓存
✅ Redis 缓存
✅ MySQL 索引 & 配置
✅ Composer 优化


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

  • ThinkPHP 版本(5.1 / 6 / 8)
  • 并发量 & 服务器配置
  • 是否已用 Nginx / MySQL / Redis

我可以给你一套 针对性更强的优化配置。

0 踩