在 Debian 上“管 Laravel 队列”,通常包含三件事:跑队列 worker、保证它不挂、方便查看和控制。下面按「最常用方案 → 生产推荐方案」讲。
cd /var/www/你的项目
php artisan queue:work
⚠️ 缺点:
sudo nano /etc/systemd/system/laravel-queue.service
示例(重点配置):
[Unit]
Description=Laravel Queue Worker
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/你的项目
ExecStart=/usr/bin/php artisan queue:work --queue=default --sleep=3 --tries=3
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
⚠️ 注意:
User 必须是能写 storage/ 的用户which php 确认sudo systemctl daemon-reload
sudo systemctl enable laravel-queue
sudo systemctl start laravel-queue
systemctl status laravel-queue
journalctl -u laravel-queue -f
systemctl restart laravel-queue
✅ 优点:
如果你有多个队列:
ExecStart=/usr/bin/php artisan queue:work --queue=high,default
或者开多个 service:
laravel-queue-high.service
laravel-queue-default.service
如果你更熟悉 Supervisor:
sudo apt install supervisor
/etc/supervisor/conf.d/laravel.conf
[program:laravel-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/你的项目/artisan queue:work
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/你的项目/storage/logs/queue.log
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-queue:*
php artisan queue:failed
php artisan queue:retry all
php artisan queue:flush
检查:
.env 中 QUEUE_CONNECTION✅ Debian + systemd + Redis 队列
QUEUE_CONNECTION=redis
如果你愿意,可以告诉我:
我可以直接帮你写一套 可用 service 文件。