在 Debian 上优化 Laravel,通常可以从 系统层、PHP 层、Laravel 自身、Web 服务器、数据库与缓存 几个方面入手。下面给你一套比较完整、实战可用的优化方案。
lsb_release -a
建议使用:
sudo apt update
sudo apt install -y \
nginx \
php8.2-fpm \
php8.2-cli \
php8.2-common \
php8.2-curl \
php8.2-mbstring \
php8.2-xml \
php8.2-zip \
php8.2-mysql \
php8.2-redis \
php8.2-opcache \
composer \
unzip \
git
编辑:
sudo nano /etc/php/8.2/fpm/conf.d/20-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
opcache.jit=1255
opcache.jit_buffer_size=256M
validate_timestamps=0适合生产环境
重启 PHP-FPM:
sudo systemctl restart php8.2-fpm
编辑:
/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
根据服务器内存调整(2G 内存不建议超过 80 个)。
进入 Laravel 项目目录:
cd /var/www/your-laravel-app
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
⚠️ 注意:
route:cache 不支持闭包路由composer install --optimize-autoloader --no-dev
或更激进:
composer dump-autoload -o
.env
APP_ENV=production
APP_DEBUG=false
server {
listen 80;
server_name example.com;
root /var/www/your-laravel-app/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
location ~ /\. {
deny all;
}
}
gzip on;
gzip_types text/css application/javascript application/json;
在 /etc/mysql/mariadb.conf.d/50-server.cnf:
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
max_connections = 150
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
避免频繁连接数据库,可配合 Redis。
sudo apt install redis-server
.env
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
php artisan queue:work --daemon
使用 systemd 守护进程(推荐):
sudo nano /etc/systemd/system/laravel-queue.service
[Unit]
Description=Laravel Queue Worker
[Service]
ExecStart=/usr/bin/php /var/www/your-laravel-app/artisan queue:work
Restart=always
User=www-data
[Install]
WantedBy=multi-user.target
启动:
sudo systemctl enable --now laravel-queue
sudo chown -R www-data:www-data /var/www/your-laravel-app
sudo chmod -R 755 /var/www/your-laravel-app
storage / bootstrap 目录:
sudo chmod -R 775 storage bootstrap/cache
htop
iotop
✅ OPcache 开启
✅ config / route / view cache
✅ composer autoload 优化
✅ APP_DEBUG=false
✅ Redis 缓存
✅ 队列异步
✅ Nginx gzip
✅ PHP-FPM 调优
如果你愿意,我可以:
直接告诉我你的服务器配置和实际场景即可。