Php Laravel 4队列-[InvalidArgumentException]中没有定义命令;“排队”;名称空间

Php Laravel 4队列-[InvalidArgumentException]中没有定义命令;“排队”;名称空间,php,queue,laravel-4,supervisord,beanstalkd,Php,Queue,Laravel 4,Supervisord,Beanstalkd,我正在CentOS 6 VPS上使用Laravel 4+Beanstalk+Supervisor 在VPS上同时安装beanstalk和supervisor已经很痛苦了,但我成功了(我已经在我的本地服务器Macbook Pro上完成了同样的安装,并且在那里工作得很好) 我想利用Laravel4的队列和Beanstalk异步发送电子邮件。我为主管制作了一个“程序”,基本上运行命令 php artisan queue:listen --env=production 但与此相关的过程不会成功启动。我

我正在CentOS 6 VPS上使用Laravel 4+Beanstalk+Supervisor

在VPS上同时安装beanstalk和supervisor已经很痛苦了,但我成功了(我已经在我的本地服务器Macbook Pro上完成了同样的安装,并且在那里工作得很好)

我想利用Laravel4的队列和Beanstalk异步发送电子邮件。我为主管制作了一个“程序”,基本上运行命令

php artisan queue:listen --env=production
但与此相关的过程不会成功启动。我为此过程定义的日志输出以下内容:

[InvalidArgumentException]
There are no commands defined in the "queue" namespace.
所以很明显,artisan正在寻找它根本不喜欢的东西

求求你,求求你,求求你,你能帮我吗?我在谷歌上找到的唯一结果是一篇没有回答的git问题帖子,以及一篇同样无用的帖子,在Laravel的论坛上没有答案


编辑:测试我注意到Artisan的队列:listen在shell中由我运行时工作正常,但当Supervisord尝试运行该命令时,会发生InvalidArgumentException。

在我的情况下,如果您中的任何人遇到此问题,解决方案如下:

[InvalidArgumentException]
There are no commands defined in the "queue" namespace.
我已经安装了Supervisord2.1版(通过pip)。我至少需要3.0版(因为“目录”设置(在supervisord.conf文件中使用)是在3.0版中引入的

我不得不

pip uninstall supervisor
然后我不得不

pip install supervisor==3.0

在那之后,我只需在/etc/supervisord.conf中设置所需的配置值,我的
artisan
运行
queue:listen
,没有问题。

我遇到了类似的问题,并得到了我发布的问题的答案,该问题对我有用:

而不是做:

[program:lvcartsey]
command=php artisan queue:listen --env="local"
stdout_logfile=/home/mike/web/app/storage/logs/myqueue_supervisord.log
redirect_stderr=true
directory=/home/mike/web
;autorestart=true
;autostart=true
user=mike
在supervisor.conf中,我将命令替换为:

command=/usr/local/bin/php artisan queue:listen --env="local"