温馨提示×

centos跑laravel慢怎么办

小樊
36
2026-09-14 23:01:48
栏目: 智能运维

在 CentOS 上运行 Laravel 慢,通常不是单一原因,而是环境配置 + Laravel 本身机制共同导致的。下面按「最常见 → 高级优化」给你一套排查和优化清单。


一、先做基本确认(很重要)

先确认是真的慢还是首次访问慢:

php artisan route:list
php artisan config:clear

如果:

  • 首次访问慢,后续快 → 多半是 OPcache / 预热问题
  • 每次都慢 → 配置或数据库问题

二、必做的 Laravel 优化(立刻见效)

1️⃣ 开启 Laravel 生产优化

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

⚠️ 修改配置后记得重新 cache


2️⃣ 开启 PHP OPcache(非常关键)

CentOS 上很多人没开 OPcache,Laravel 会慢 3–5 倍。

检查是否开启

php -m | grep opcache

修改 php.ini

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0  ; 生产环境

重启 PHP:

systemctl restart php-fpm

三、Web 服务器优化(Nginx / Apache)

✅ 推荐:Nginx + PHP-FPM

如果是 Apache,建议换 Nginx。

php-fpm 配置优化

vim /etc/php-fpm.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

四、数据库优化(Laravel 慢的常见元凶)

1️⃣ 开启查询日志确认慢 SQL

DB::enableQueryLog();
// 你的代码
dd(DB::getQueryLog());

2️⃣ 加索引

常见慢点:

  • where
  • order by
  • join 字段

3️⃣ 关闭 debug

.env

APP_DEBUG=false

五、文件 & 权限问题(CentOS 特有)

1️⃣ storage / bootstrap 权限

chown -R nginx:nginx storage bootstrap/cache
chmod -R 775 storage

2️⃣ SELinux 影响(CentOS 常见)

临时测试:

setenforce 0

如果变快了:

setsebool -P httpd_read_user_content 1

六、Composer & 自动加载优化

composer install --optimize-autoloader --no-dev
composer dump-autoload -o

七、进阶(如果你服务器配置不高)

1️⃣ 使用 Redis 做缓存 & session

.env

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

2️⃣ Laravel Octane(高并发)

composer require laravel/octane
php artisan octane:install

⚠️ 需要 Swoole / RoadRunner


八、快速自检清单 ✅

  • [ ] OPcache 已开启
  • [ ] config / route / view 已 cache
  • [ ] APP_DEBUG=false
  • [ ] 使用的是 Nginx + PHP-FPM
  • [ ] 数据库有索引
  • [ ] SELinux 没拦
  • [ ] composer 优化过

九、如果你愿意,我可以更精准帮你

你可以补充:

  1. CentOS 版本(7 / 8 / Stream)
  2. PHP 版本
  3. Nginx 还是 Apache
  4. 是接口慢还是页面慢
  5. 是否用了 Docker

我可以直接给你针对性配置。

0 踩