在 Debian 上运行 Laravel 感觉“慢”,通常不是系统本身的问题,而是环境配置 + Laravel 机制 + 资源使用的综合结果。下面按常见原因从高到低给你梳理,并给出对应解决办法。
Laravel 是 PHP 框架,每次请求都会解析大量 PHP 文件。
没开 Opcache = 极慢
检查:
php -m | grep opcache
解决(Debian):
sudo apt install php-opcache
/etc/php/*/cli/php.ini 和 fpm/php.ini 中:
opcache.enable=1
opcache.memory_consumption=128
opcache.revalidate_freq=0
重启:
sudo systemctl restart php8.2-fpm
✅ 这一步通常能提升 3–10 倍性能
php artisan serveartisan serve 是开发服务器,单进程、无优化。
❌ 慢
php artisan serve
✅ 正确方式
生产环境还开着 debug:
.env
APP_DEBUG=false
APP_ENV=production
每次请求重新加载:
php artisan config:cache
php artisan route:cache
php artisan view:cache
⚠️ 改配置后记得重新 cache
composer install --optimize-autoloader --no-dev
或:
composer dump-autoload -o
检查:
app/Providersroutes/api.php 中的全局中间件建议:
/etc/php/*/fpm/pool.d/www.conf
常见误区:
pm = dynamic
pm.max_children = 5 # 太小
调优示例:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
Laravel 写大量日志、cache、session
检查:
iostat -x 1
解决:
redis 做 cache / sessionLaravel 默认日志、cache 可能用文件
推荐:
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
| 场景 | 是否慢 | 原因 |
|---|---|---|
| artisan serve | ❌ 慢 | 开发服务器 |
| DEBUG=true | ❌ 慢 | 调试开销 |
| 无 Opcache | ❌ 极慢 | PHP 重编译 |
| Nginx+FPM+Opcache | ✅ 快 | 正确方式 |
| 云 1C1G | ⚠️ 一般 | 资源不足 |
php -m | grep opcache
php -i | grep memory_limit
systemctl status php8.2-fpm
php artisan route:cache
php artisan config:cache
你可以贴出:
top 或 htop 截图我可以直接帮你定位是哪一层慢。