在 Debian 上运行 Laravel 感觉“慢”,通常不是系统本身的问题,而是配置、缓存、PHP 环境、磁盘 IO等导致的。下面按最常见 → 最见效的顺序给你一套排查和优化方案。
先别盲目优化,先定位:
# 看页面响应时间
curl -w "time_total: %{time_total}\n" http://your-site.test
# 看 PHP 执行时间
php -m | grep -i xdebug
如果有 xdebug,先关掉,它非常非常慢。
Laravel 默认会实时读取配置、路由、视图。
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize
⚠️ 改代码后记得清缓存:
php artisan optimize:clear
❌ 错误方式:
php artisan serve
✅ 正确方式(生产):
Laravel 10/11 推荐:
| Laravel | PHP |
|---|---|
| 10 | ≥ 8.1 |
| 11 | ≥ 8.2 |
查看:
php -v
Debian 升级 PHP:
sudo apt install php8.2 php8.2-fpm php8.2-cli
编辑:
/etc/php/8.2/fpm/conf.d/10-opcache.ini
确保:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
重启:
systemctl restart php8.2-fpm
Laravel 慢 + 磁盘 IO 高,常见原因:
storage/logs/laravel.log 太大检查:
du -sh storage
建议:
APP_DEBUG=false
在代码中:
User::with('posts')->get(); // ✅
User::all(); // ❌ 然后循环查 posts
检查:
php artisan telescope:install
# 或
clockwork
Laravel 对 IO 敏感:
最好放:
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
❌ WSL1 + Laravel = 灾难
✅ 用 WSL2
✅ 项目放 Linux 文件系统,不是 /mnt/c
✅ PHP ≥ 8.1
✅ opcache 开
✅ config/route/view cached
✅ 不用 artisan serve
✅ 没开 xdebug
✅ 数据库有索引
✅ 日志不爆炸
你可以直接告诉我:
我可以给你精确优化方案,甚至直接帮你改配置。