在 Ubuntu 上运行 ThinkPHP 感觉“慢”,通常不是单一原因,而是环境配置 + 框架特性 + 代码实现共同作用的结果。下面按常见原因从高到低给你梳理,并给出排查/优化方法。
这是 Ubuntu + PHP 最容易导致慢的原因
没开 OPcache,每个请求都会重新编译 PHP 文件。
检查:
php -m | grep opcache
如果没有:
sudo apt install php-opcache
sudo systemctl restart php-fpm # 或 apache2
php.ini 建议:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 ; 生产环境
ThinkPHP 在 debug 模式下:
检查:
APP_DEBUG = false
php think run
这种只适合本地测试,生产环境非常慢。
✅ 正确做法:
常见于:
检查:
iostat -x 1
优化:
如果 runtime 权限不对,TP 会反复尝试写文件失败。
正确权限:
sudo chown -R www-data:www-data runtime
sudo chmod -R 755 runtime
优化:
// database.php
'params' => [
\PDO::ATTR_PERSISTENT => true
]
php think optimize:route
php think optimize:config
典型慢代码:
foreach ($users as $user) {
$user->profile;
}
应改为:
User::with('profile')->select();
# 1. PHP 版本
php -v # 推荐 8.1 / 8.2
# 2. OPcache
php -m | grep opcache
# 3. 当前模式
grep APP_DEBUG .env
# 4. 请求耗时
time curl http://localhost
你可以直接贴:
我可以给你一套针对你服务器的优化方案。