温馨提示×

centos跑laravel卡怎么办

小樊
32
2026-10-02 21:27:16
栏目: 智能运维

在 CentOS 上运行 Laravel “卡”,常见原因和优化方向可以按下面几块来排查和处理。


一、先确认“卡”在哪

1. 是页面响应慢,还是命令行(artisan)慢?

  • 页面慢 → 看 Web(PHP / Nginx / Apache)+ 数据库
  • php artisan 慢 → 看 PHP 本身、文件系统、权限

2. 看服务器资源

top
htop
free -h
df -h

重点看:

  • CPU 是否 100%
  • 内存是否不足(开始用 swap)
  • 磁盘是否满

二、PHP 性能优化(最关键)

1. 使用 PHP 8.x(强烈建议)

CentOS 默认可能是 PHP 7.2/7.4,太老。

php -v

建议升级到 PHP 8.1 / 8.2 / 8.3

2. 安装并启用 OPcache

yum install php-opcache

php.ini 示例:

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

重启 PHP:

systemctl restart php-fpm

三、Laravel 自身优化(必做)

1. 生产环境必须执行的命令

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

⚠️ 改了配置/路由后记得重新 cache

2. 关闭 debug

.env

APP_DEBUG=false
APP_ENV=production

3. 少用 php artisan serve

只适合开发,生产用 Nginx + PHP-FPM


四、Web 服务优化(Nginx 示例)

Nginx + PHP-FPM 推荐配置

location ~ \.php$ {
    fastcgi_pass   unix:/run/php-fpm/www.sock;
    fastcgi_index  index.php;
    include        fastcgi_params;
}

PHP-FPM 调整:

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

五、数据库优化(非常常见)

1. 慢查询

SHOW PROCESSLIST;

2. 加索引

Schema::table('users', function ($table) {
    $table->index('email');
});

3. 用 Laravel 调试慢查询

.env

DB_QUERY_LOG=true

或用:

\DB::enableQueryLog();

六、文件系统和权限问题(CentOS 特有)

1. SELinux 可能拖慢或阻断

查看:

getenforce

临时关闭测试:

setenforce 0

⚠️ 生产环境建议正确配置而不是直接关

2. 存储目录权限

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

七、磁盘 IO 问题(云服务器常见)

  • 用 SSD
  • 避免 /storage/logs 无限增大
  • 定期清理:
php artisan log:clear

八、缓存层(高并发必加)

Redis 缓存

.env

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

安装:

yum install redis
systemctl enable redis

九、快速自检清单 ✅

  • [ ] PHP ≥ 8.1
  • [ ] OPcache 开启
  • [ ] config / route / view cached
  • [ ] APP_DEBUG=false
  • [ ] 使用 Nginx + PHP-FPM
  • [ ] 数据库有索引
  • [ ] Redis 缓存
  • [ ] 日志不过大
  • [ ] SELinux / 权限正常

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

  • CentOS 版本
  • PHP 版本
  • Web 服务(Nginx / Apache)
  • 是页面卡还是命令行卡

我可以给你针对性配置方案。

0 踩