温馨提示×

debian跑laravel慢怎么办

小樊
46
2026-09-08 06:39:24
栏目: 智能运维

在 Debian 上跑 Laravel 感觉“慢”,通常可以从系统环境、PHP 配置、Laravel 自身、运维方式几个层面来排查和优化。下面按常见原因给你一个系统性的解决方案。


一、先确认“慢”在哪里

先区分是:

  • 页面响应慢(HTTP 请求)
  • 命令行慢(artisan)
  • 首次访问慢,后续正常
  • 所有请求都慢

可以用:

time php artisan --version
curl -w "@curl-format.txt" -o /dev/null -s http://your-site

curl-format.txt

time_namelookup:  %{time_namelookup}\n
time_connect:     %{time_connect}\n
time_pretransfer: %{time_pretransfer}\n
time_starttransfer: %{time_starttransfer}\n
time_total:       %{time_total}\n

二、PHP 层面(最常见原因)

1. 使用 PHP-FPM(不要 CGI / mod_php)

apt install php-fpm

Nginx 示例:

location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

2. 安装并启用 OPcache(非常重要)

apt install php-opcache

/etc/php/8.2/fpm/php.ini

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0

生产环境建议 validate_timestamps=0


三、Laravel 自身优化(生产必做)

1. 配置 & 路由缓存

php artisan config:cache
php artisan route:cache
php artisan view:cache

2. 关闭 debug

.env

APP_DEBUG=false
APP_ENV=production

3. 使用 Redis / 文件缓存

避免默认 array 缓存:

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

四、Composer & 自动加载

1. 生产环境优化 autoload

composer install --no-dev --optimize-autoloader

2. 避免开发依赖

composer dump-autoload -o

五、Debian 系统层面

1. 磁盘 IO 问题(非常常见)

如果是 低配 VPS / 云盘 IO 差

  • 用 SSD
  • 项目放在本地盘,不要 NFS

查看 IO:

iostat -x 1

2. 文件权限 & 所有者

错误权限会导致 Laravel 反复写 log / cache:

chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage

六、Web 服务器优化

Nginx 示例(基础)

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
keepalive_timeout 30;

开启 Gzip

gzip on;
gzip_types text/css application/javascript application/json;

七、常见问题速查表

现象 可能原因
首次慢,后面快 OPcache 未开
artisan 慢 每次重新加载全部类
API 慢 DB 慢 / N+1
后台任务慢 队列没起
SSH 执行慢 DNS 解析慢

八、进阶(如果还慢)

  • 使用 Laravel Octane(Swoole / RoadRunner)
  • 使用 Redis 队列
  • 数据库加索引、避免 N+1
  • 使用 Blackfire / Tideways 做性能分析

如果你愿意,可以告诉我:

  • Debian 版本
  • PHP 版本
  • Web 服务器(Nginx / Apache)
  • 服务器配置(CPU / 内存)
  • 是本地还是云服务器

我可以直接给你一份针对你环境的优化清单

0