温馨提示×

laravel在centos为何运行慢

小樊
39
2026-09-05 23:22:31
栏目: 智能运维

在 CentOS 上运行 Laravel 感觉“慢”,通常不是 Laravel 本身的问题,而是环境配置、系统资源、PHP 运行方式等综合因素导致。下面按常见原因从高到低给你梳理,并给出排查与优化建议。


一、最常见原因(90% 的性能问题在这里)

1. PHP 运行方式不对(非常关键)

很多人用:

php artisan serve

或者 Apache + mod_php + 未启用 OPcache

推荐方案

  • Nginx + PHP-FPM
  • 启用 OPcache

检查是否启用 OPcache:

php -m | grep opcache
php -i | grep opcache.enable

如果没开,CentOS 上安装:

yum install php-opcache

并配置:

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

2. 没有开启 Laravel 优化(新手常犯)

Laravel 默认是“开发模式”。

✅ 生产环境必须执行:

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize (Laravel 5.x)

每次代码更新后记得清缓存:

php artisan cache:clear

3. 使用了 php artisan serve

这是单进程、开发用,在 CentOS 上:

  • 不支持并发
  • 每次请求都重新加载
  • 非常慢

❌ 不要用在生产
✅ 用 Nginx + PHP-FPM


二、CentOS 特有或服务器层面的问题

4. SELinux 导致文件访问慢

CentOS 默认开启 SELinux,可能导致:

  • 文件权限检查慢
  • 日志写入卡顿

检查:

getenforce

如果是 Enforcing,可临时测试:

setenforce 0

(正式环境建议配置策略,而不是关闭)


5. 磁盘 IO 慢(云服务器常见)

尤其是:

  • 低配云服务器
  • 使用机械盘
  • /storage/bootstrap/cache 写入频繁

检查 IO:

iostat -x 1

优化:

  • 日志级别调高
  • 减少 debugbar
  • storage 使用 tmpfs(谨慎)

6. 数据库连接慢

Laravel 默认每次请求都连数据库

检查:

DB_HOST=127.0.0.1   # 不要用 localhost(DNS 解析慢)

开启持久连接(谨慎):

DB_PERSISTENT=true

三、Laravel 自身“伪慢”

7. 开发调试工具没关

以下都非常吃性能:

  • Debugbar
  • Telescope
  • Laravel IDE Helper(只在开发)
  • APP_DEBUG=true

生产环境:

APP_DEBUG=false
APP_ENV=production

8. Composer 依赖过多

  • 大量 dev 依赖
  • 未使用 composer install --no-dev

生产部署:

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

9. 未使用队列 / 同步执行耗时任务

比如:

  • 发邮件
  • 生成 PDF
  • 调用第三方 API

❌ 同步执行
✅ 使用 Queue


四、快速自查清单(建议你一步步来)

# 1. PHP 模式
php -v
php -m | grep opcache

# 2. Web 服务
nginx -v
php-fpm -v

# 3. Laravel 优化
php artisan route:cache
php artisan config:cache

# 4. 环境
cat .env | grep APP_DEBUG

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

你可以告诉我:

  1. CentOS 版本(7 / 8 / Stream)
  2. Web 服务(Nginx / Apache)
  3. PHP 版本
  4. 是否用 php artisan serve
  5. 服务器配置(CPU / 内存)

我可以直接给你一套**“CentOS + Laravel 最佳性能配置方案”**。

0