温馨提示×

centos为何运行laravel慢

小樊
46
2026-09-02 19:11:16
栏目: 智能运维

CentOS 上运行 Laravel 明显比预期慢,通常不是 Laravel 本身的问题,而是系统环境、PHP 配置或服务器资源导致的。下面按最常见原因 → 排查方式 → 解决建议来说明。


一、最常见原因(90% 的情况)

1️⃣ PHP 未开启 OPcache(最关键)

Laravel 是“重框架”,没有 OPcache 会慢 3~10 倍

✅ 检查:

php -m | grep opcache

❌ 如果没有输出,说明没开。

✅ 安装并开启(CentOS 示例):

yum install php-opcache -y

编辑 php.ini

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60

重启 PHP:

systemctl restart php-fpm

2️⃣ 使用的是 php artisan serve(开发服务器)

php artisan serve

非常慢、只能单请求 ✅ 生产环境应使用:

  • Nginx + PHP-FPM
  • Apache + PHP-FPM

3️⃣ 权限 & 磁盘 IO 问题

CentOS 默认 SELinux + 严格权限 会导致:

  • storage/ 写入慢
  • bootstrap/cache/ 无法缓存

✅ 正确权限:

chown -R nginx:nginx /var/www/laravel
chmod -R 755 /var/www/laravel
chmod -R 777 storage bootstrap/cache

✅ 关闭 SELinux(测试用):

setenforce 0

4️⃣ 每次请求都重新加载配置(没缓存)

Laravel 默认不会缓存配置。

✅ 生产环境务必执行:

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

5️⃣ Debug 模式开启

.env 中:

APP_DEBUG=true

❌ 非常影响性能

✅ 生产环境:

APP_DEBUG=false

二、服务器层面的原因

6️⃣ PHP-FPM 配置太低

编辑:

/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

7️⃣ 磁盘是 HDD 或云盘 IO 差

Laravel 对 IO 敏感(日志、缓存、autoload)

✅ 建议:

  • 使用 SSD
  • storage/logs 可关掉或异步

8️⃣ DNS 解析慢(DB / Redis)

如果 .env 中:

DB_HOST=localhost

在 CentOS 可能解析很慢

✅ 改为:

DB_HOST=127.0.0.1

三、快速自检清单 ✅

你可以一条条核对:

  • [ ] OPcache 已开启
  • [ ] 使用 Nginx + PHP-FPM
  • [ ] config / route / view 已 cache
  • [ ] APP_DEBUG=false
  • [ ] storage 可写
  • [ ] DB_HOST 用 IP
  • [ ] SELinux / 权限正常

四、如果你想更精确地定位

你可以告诉我:

  1. CentOS 版本(7 / 8 / Stream)
  2. PHP 版本
  3. Web 服务(Nginx / Apache)
  4. 是本地还是云服务器
  5. 慢在「首页 / 接口 / 后台」

我可以直接给你针对性的优化方案

0