在 Debian 上运行 Laravel 队列,通常包含 安装环境 → 配置队列 → 启动 Worker → 后台常驻 → 监控 几个步骤。下面按实战流程说明。
sudo apt update
sudo apt install php php-cli php-mbstring php-xml php-curl php-zip php-mysql php-bcmath
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer create-project laravel/laravel example-app
cd example-app
.env常用队列驱动:
database(最简单,适合 Debian 单机)redis(推荐,性能好)QUEUE_CONNECTION=database
QUEUE_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 SendEmail
编辑 app/Jobs/SendEmail.php:
public function handle()
{
// 队列逻辑
}
调用:
SendEmail::dispatch($user);
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/example-app/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/example-app/storage/logs/worker.log
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
sudo nano /etc/systemd/system/laravel-queue.service
[Unit]
Description=Laravel Queue Worker
After=network.target
[Service]
User=www-data
WorkingDirectory=/var/www/example-app
ExecStart=/usr/bin/php artisan queue:work
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl enable laravel-queue
sudo systemctl start laravel-queue
php artisan queue:failed-table
php artisan migrate
php artisan queue:failed
php artisan queue:retry all
如果用到 later() 延迟队列:
crontab -e
* * * * * cd /var/www/example-app && php artisan schedule:run >> /dev/null 2>&1
queue:workstorage 可写sudo apt install redis-server
如果你愿意,我可以:
直接告诉我你的 Laravel 版本和使用场景即可。