在 Debian 下配置 Laravel 队列,一般包含 安装环境 → 配置队列 → 启动队列进程 → 设置开机自启 几个步骤。下面以 Redis 队列 + Supervisor 守护进程 为例(最常用、最稳)。
sudo apt update
sudo apt install php php-cli php-mbstring php-xml php-curl php-zip php-mysql php-redis
sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
.envQUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
php artisan queue:table
php artisan migrate
php artisan make:job TestJob
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
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
查看状态:
sudo supervisorctl status
Supervisor 本身会开机启动:
sudo systemctl enable supervisor
php artisan queue:work redis
php artisan queue:restart
php artisan queue:failed
php artisan queue:retry all
QUEUE_CONNECTIONstorage/logs/worker.logphp artisan queue:restart
php artisan queue:work redis --queue=high,default
如果你用的是 数据库队列 / Beanstalkd / systemd 方式,或者 Debian 版本不同,可以告诉我,我可以给你对应方案。