Вот нечетный. Я запускаю диспетчер 3.13 с beanstalkd для очереди Laravel 4.1. У меня есть/stage/и/production/экземпляры моего приложения. Я бег программы супервизора для запуска мастеровых очереди: слушать (из отдельных .conf файлов) для каждого следующим образом:Supervisord Fatal (Laravel 4.1 + Beanstalkd) Никаких команд, определенных в пространстве имен «queue»
[program:appname-production]
command=php artisan queue:listen --env=production
directory=/home/servername/public_html/production
stdout_logfile=/home/servername/public_html/production/app/storage/logs/supervisord.log
redirect_stderr=true
autostart=true
autorestart=true
Единственной разницы замены производства с этапом в программе. Однако, когда супервизор работает, выполняется только программа сцены. Производственная программа показывает FATAL Вышел слишком быстро
appname-production FATAL Exited too quickly (process log may have details)
appname-stage RUNNING pid 6784, uptime 0:32:01
Очередь этапа работает нормально, как показано в ps aux. Кроме того, запуск очереди мастеров: прослушивание в рабочей папке работает так же, как должно. Когда я анализирую журнал supervisord для производства, однако, она полна:
X-Powered-By: PHP/5.5.20
Content-type: text/html
[InvalidArgumentException]
There are no commands defined in the "queue" namespace.
Я исчерпал мои технические знания о настройке здесь - я не могу рассуждать, почему два клонированных расстановки ведут себя по-разному. Я только мог догадаться, что супервизор ошеломляется где-то - так как я могу заставить производственную очередь работать нормально, делая это вручную.
Вся помощь/идеи очень оценены.
Возможно, команда не запускается с пользователем, который имеет правильные разрешения. Попробуйте добавить 'user = apache' (или любой другой пользователь, который есть ваш веб-сервер) в раздел' [program: appname-production] '. – Bogdan
К сожалению (и, возможно, ошибочно) супервизор работает от имени root, из которого я также могу выполнить команду вручную. Доступен только один пользователь, который имеет равный доступ как к производству, так и к стадии. –
Хорошо, нашел что-то очень интересное. Независимо от среды, если для debug установлено значение false в config/app.php (или конкретном env app.php), супервизор не может запустить команду artisan. Команда все еще может быть успешно запущена с помощью оболочки, и очередь работает нормально. Кто-нибудь знает, почему статус отладки повлияет на то, как супервайзер запускает ремесленник? –