温馨提示×

centos怎样优化laravel

小樊
39
2026-09-24 02:57:13
栏目: 智能运维

在 CentOS 上优化 Laravel,通常可以从系统层、PHP 层、Laravel 自身、Web 服务器、数据库、缓存几个方面入手。下面按实战角度给你一套比较完整的优化方案。


一、系统层面(CentOS)

1. 关闭不必要的服务

systemctl disable firewalld --now   # 如果用了云安全组可关
systemctl disable postfix

只保留:nginx / php-fpm / mysql / redis

2. 文件描述符优化

ulimit -n 65535

永久:

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

3. Swap(小内存机器)

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

二、PHP 优化(重点)

1. 使用 PHP 8.x(强烈推荐)

yum install epel-release -y
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php82
yum install php php-fpm php-mysqlnd php-redis php-opcache

2. php.ini 优化

memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 60
cgi.fix_pathinfo=0

3. OPCache(非常重要)

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0  # 生产环境

4. php-fpm 优化

www.conf

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

三、Nginx 优化

1. nginx.conf

worker_processes auto;
worker_connections 10240;
keepalive_timeout 30;
gzip on;
gzip_min_length 1k;
gzip_comp_level 5;

2. Laravel 站点配置

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

location ~ \.php$ {
    fastcgi_pass unix:/run/php-fpm/www.sock;
    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 optimize (Laravel 8+ 已合并)

2. 关闭 debug

.env

APP_DEBUG=false
APP_ENV=production

3. 日志优化

LOG_CHANNEL=daily
LOG_LEVEL=error

五、缓存与队列(核心)

1. 使用 Redis

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

2. 启动队列

php artisan queue:work --daemon

建议用 supervisor:

[program:laravel-worker]
command=php /var/www/artisan queue:work --tries=3
autostart=true
autorestart=true

六、数据库优化

1. MySQL 配置(my.cnf)

innodb_buffer_pool_size = 1G
max_connections = 200
query_cache_type = 0

2. Laravel 查询优化

  • 用 select() 避免 select *
  • 用 with() 解决 N+1
  • 合理使用索引

七、Composer 优化

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

八、监控与排错

top
htop
php-fpm status
redis-cli monitor

总结(最简必做清单)

✅ PHP 8 + OPCache
✅ Laravel config/route/view cache
✅ Redis 缓存 & 队列
✅ Nginx + php-fpm 调优
✅ 关闭 debug

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

  • CentOS 版本(7 / 8 / Stream)
  • 内存大小
  • 是否高并发

我可以给你一套针对性配置模板。

0 踩