下面从系统层、PHP 层、ThinkPHP 层、数据库与缓存、运维几个维度,系统说明在 Ubuntu 上优化 ThinkPHP(5 / 6 / 8 均适用) 的实用方案。
sudo apt update && sudo apt upgrade -y
编辑:
sudo nano /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535
优化内核:
sudo nano /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
vm.swappiness = 10
sudo sysctl -p
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-redis php8.2-opcache
编辑:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
关键参数:
pm = dynamic
pm.max_children = 120
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
sudo nano /etc/php/8.2/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0 # 生产环境
worker_processes auto;
worker_connections 10240;
gzip on;
gzip_min_length 1k;
gzip_comp_level 5;
gzip_types text/css application/javascript application/json;
.env
APP_DEBUG = false
php think optimize:route
php think optimize:config
.env
CACHE_TYPE = redis
CACHE_HOST = 127.0.0.1
CACHE_PORT = 6379
安装 Redis:
sudo apt install redis-server
app/middleware.php 中只保留必要中间件。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
innodb_buffer_pool_size = 1G
query_cache_type = 0
slow_query_log = 1
User::with('profile')->select();
runtimephp think clear
ab / wrk黑色框 top / htopphp think traceRedis MONITOR如果你愿意,可以告诉我:
✅ ThinkPHP 版本
✅ Ubuntu 版本
✅ 并发量 / 项目规模
我可以给你一套针对性优化配置。