在 Debian 上优化 Laravel 性能,可以从 PHP、Laravel 自身、Web 服务器、系统层面 多个角度来做。下面按「见效快 → 进阶优化」给你一套实用方案。
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
部署后修改配置一定要重新
config:cache
.env
APP_DEBUG=false
APP_ENV=production
composer install --optimize-autoloader --no-dev
见下文 PHP 部分
sudo apt install php-opcache
编辑 php.ini(如 /etc/php/8.2/fpm/php.ini):
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0
生产环境
validate_timestamps=0,代码更新需重启 PHP-FPM
重启:
sudo systemctl restart php8.2-fpm
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=laravel:10m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
location ~ \.php$ {
fastcgi_cache laravel;
fastcgi_cache_valid 200 60m;
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
php-fpm 而不是 mod_phpmod_cache.env
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
安装 Redis:
sudo apt install redis-server
EXPLAIN SELECT * FROM users WHERE email = 'x';
php artisan queue:work --daemon
用 supervisor 守护:
sudo apt install supervisor
/etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
ulimit -n 65535
必要时加 Swap
composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache
php artisan view:cache
启用 OPcache
使用 Redis
使用队列
如果你愿意,我可以 针对你的 Debian 版本 / PHP 版本 / 访问量 给你一套具体配置。