在 Ubuntu 上优化 ThinkPHP(以 ThinkPHP 5 / 6 为主,兼顾通用思路),可以从系统层、PHP 层、Web 服务器、ThinkPHP 自身、缓存与数据库几个方面入手。下面给你一套实用清单。
ThinkPHP 6 推荐 PHP 7.4 / 8.1+
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.1 php8.1-fpm php8.1-cli
减少系统开销:
systemctl disable --now apache2
(如果用 Nginx)
编辑 PHP 配置(以 8.1 为例):
sudo vim /etc/php/8.1/fpm/php.ini
建议修改:
memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 60
opcache.enable=1
sudo apt install php8.1-opcache
php.ini 中:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
重启:
sudo systemctl restart php8.1-fpm
worker_processes auto;
worker_connections 1024;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
gzip on;
gzip_min_length 1k;
gzip_comp_level 4;
/etc/php/8.1/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
.env
APP_DEBUG = false
php think optimize:route
php think optimize:config
php think optimize:autoload
避免过多文件扫描。
sudo apt install redis-server
sudo apt install php8.1-redis
ThinkPHP 配置:
'cache' => [
'type' => 'redis',
'host' => '127.0.0.1',
]
Db::name('user')->cache(60)->select();
SELECT *slow_query_log = 1
long_query_time = 1
top
htop
php-fpm -i | grep opcache
ab -n 1000 -c 100 http://localhost/
如果你告诉我:
我可以给你更精确的优化配置方案。