温馨提示×

centos如何优化laravel

小樊
38
2026-08-18 13:38:56
栏目: 智能运维

CentOS 上优化 Laravel,一般从 系统层、PHP、数据库、Laravel 本身、缓存、队列、Web 服务器 几个方面入手。下面给你一套比较完整、实战可用的优化方案(适用于 CentOS 7 / 8 / Stream)。


一、系统 & 基础环境优化

1. 关闭或优化 SELinux(可选)

getenforce
setenforce 0

永久关闭:

vi /etc/selinux/config
SELINUX=disabled

生产环境视安全需求决定,不建议盲目关闭。


2. 调整系统文件描述符限制

ulimit -n

修改:

vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

二、PHP 优化(非常关键)

1. 使用 PHP 8.x(推荐 8.1 / 8.2)

yum install epel-release -y
yum install yum-utils -y
yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
yum module enable php:remi-8.2 -y
yum install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-redis php-opcache -y

2. PHP-FPM 优化

vi /etc/php-fpm.d/www.conf

关键参数(示例 4 核 8G):

pm = dynamic
pm.max_children = 80
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30

重启:

systemctl restart php-fpm

3. Opcache 优化(必开)

vi /etc/php.d/10-opcache.ini

推荐配置:

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0

三、Web 服务器优化(Nginx 推荐)

1. Nginx 配置优化

worker_processes auto;
worker_connections 10240;

sendfile on;
tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 65;
gzip on;
gzip_comp_level 5;
gzip_min_length 1k;

2. Laravel Nginx 配置

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

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

四、Laravel 本身优化(非常重要)

1. 生产环境必须执行

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

⚠️ 注意:

  • route:cache 不支持闭包路由
  • 每次部署后都要重新执行

2. 关闭调试模式

APP_DEBUG=false

3. Composer 优化

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

五、数据库优化(MySQL / MariaDB)

1. 常用 my.cnf 优化

innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
max_connections = 300

2. Laravel 数据库优化

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306

使用 连接池(Swoole / Octane 场景)


六、缓存 & 队列优化(强烈推荐)

1. Redis 替代文件缓存

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

Redis 安装:

yum install redis -y
systemctl enable redis
systemctl start redis

2. 队列优化

php artisan queue:work --daemon

使用 systemd 守护队列:

vi /etc/systemd/system/laravel-queue.service
[Unit]
Description=Laravel Queue Worker

[Service]
ExecStart=/usr/bin/php /var/www/laravel/artisan queue:work --sleep=3 --tries=3
Restart=always

[Install]
WantedBy=multi-user.target

七、使用 Laravel Octane(高并发场景)

适合 高并发 API / 高访问量项目

composer require laravel/octane
php artisan octane:install

使用 Swoole:

yum install php-swoole

启动:

php artisan octane:start --workers=8

八、监控 & 日志优化

1. 日志不要存文件(可选)

LOG_CHANNEL=syslog

或使用:

  • Sentry
  • Grafana + Loki

2. 定期清理日志

php artisan log:clear

九、CentOS 常见坑

问题 解决
权限问题 chown -R nginx:nginx storage bootstrap/cache
访问慢 开启 opcache
500 错误 查看 /var/log/nginx/error.log
队列不执行 检查 systemd / supervisor

十、推荐优化组合(生产环境)

✅ CentOS 8 / Stream
✅ Nginx + PHP 8.2 FPM
✅ Redis
✅ Opcache
✅ Laravel 路由 & 配置缓存
✅ 队列 + systemd
✅ MySQL 调优


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

  • 服务器配置(CPU / 内存)
  • 访问量(PV / QPS)
  • 是否使用 Docker
  • Laravel 版本

我可以给你一套 针对你项目的精确优化方案

0