下面按**“从零到可用”**的方式,说明如何在 Debian 上配置 Laravel 队列(Queue)。以最常见的 Redis 队列 + Supervisor 守护进程 为例(生产环境推荐)。
sudo apt update
sudo apt install -y php php-cli php-redis redis-server supervisor
根据你的 PHP 版本可能要安装
php8.2-redis等
启动 Redis:
sudo systemctl enable redis-server
sudo systemctl start redis-server
.envQUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
php artisan make:job ExampleJob
编辑 app/Jobs/ExampleJob.php:
public function handle()
{
// 队列逻辑
}
php artisan queue:work
如果可以正常消费任务,说明配置成功。
sudo apt install supervisor
sudo nano /etc/supervisor/conf.d/laravel-worker.conf
示例配置(注意路径):
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/your-project/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/your-project/storage/logs/worker.log
numprocs=2表示 2 个队列进程
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
查看状态:
sudo supervisorctl status
# 重启队列
sudo supervisorctl restart laravel-worker:*
# 失败任务表
php artisan queue:failed
# 重试失败任务
php artisan queue:retry all
redis-cli ping
返回 PONG 才算正常
sudo chown -R www-data:www-data storage
QUEUE_CONNECTION=database(需 php artisan queue:table)如果你愿意,我可以:
你现在的 Laravel 版本和 Debian 版本是多少?