使用 bt 宝塔面板的 Supervisor 插件添加 laravel 项目队列任务,执行的命令:

# --daemon 表示后台执行,必要参数
/usr/bin/php /www/wwwroot/xxx/artisan queue:work --tries=1 --daemon
# 如果将任务推送到其他的队列,比如 Test
/usr/bin/php /www/wwwroot/cstation/artisan queue:work  --queue=Test --tries=1 --daemon

在生产环境启动上面创建的 laravel queue 进程报错:

Cannot declare class Symfony\Component\HttpFoundation\Request, because the name is already in use in /www/wwwroot/cstation/bootstrap/cache/compiled.php on line 3294

对照之前安装的环境,发现该生产环境之后又安装了一个 php8.0,通过原来的 php 版本 7.3 目录地址执行了一次 work,是 ok 的。所以,可以将上面的 /usr/bin/php 改成 /www/server/php/73/bin/php 就可以了。

我这边需要环境中是 php 7.3,使用 ll /usr/bin/php* 查看到相关可执行文件使用的是软链,挨个替换到需要的 php 版本目录下即可。

cd /usr/bin
ln -s -f /www/server/php/73/bin/php ./php
...