2017-02-17 13 views
0

Я пытаюсь запустить команду Symfony2 с заданием cron, но я получаю сообщение об ошибке, что среда не найдена. Вот мой хрон:Symfony2 среда cronjob не найден

* * * * * /usr/local/bin/php /usr/lib/myApp/app/console >> /usr/lib/myApp/forumLog.txt 2>&1 

Сейчас я просто пытаюсь сделать приложение/консольный работу и ожидаемый выход список всех команд. Ошибка, я получаю:

[Symfony\Component\Debug\Exception\ContextErrorException] 
User Error: The environment was not found 

У вас есть идея, что это неправильно и что такое правильный способ для запуска Symfony2 команд через cronjob?

ответ

0

В моей собственной консоли Symfony, выполняющей cronjobs, я обычно запускаю скрипт оболочки, который сначала изменяется в соответствующий каталог, а затем запускает консольную команду.

Вот пример, который был запущен в течение года или двух:

Файл: /etc/cron.d/systemChecks (запустить скрипт в качестве пользователя: WWW-пользователя)

10 7,19 * * * www-data /var/www/dir.../bin/liipMonitor.sh 

Файл: /var/www/dir.../bin/liipMonitor.sh

#!/bin/sh 
# Running at 7:10 and 19:10 
cd /var/www/dir.../ 
bin/console --env=prod monitor:health --group=cli -q 

Я поместил настройку cron в свои собственные файлы в /etc/cron.d, но то же самое применимо и в любом другом файле crontab. Сценарий оболочки меняет каталог в базовый каталог проекта, а затем запускает bin/console.

+0

Спасибо за ответ. Теперь я получаю сообщение об ошибке, что www-данные не найдены: '/ bin/sh: 1: www-data: not found' – snaksa

+1

Различные формы файлов Cron/crontab имеют несколько разные форматы. Файлы в '/ etc/cron. * /' Например включают имя пользователя для запуска файлов как. Строки в crontabs, которые уже находятся на индивидуальной основе (то есть 'crontab -l' или' -e'), не нуждаются в этом. –

+0

Он все еще не выполняет команду. Я создал этот файл .sh и проверял с помощью эха, если он выполняется заданием cron. Все в порядке, но моя команда symfony все еще не выполнена. Отсутствует выход, ни команды не работают. Вот ссылка на мой .sh-файл: http://pastebin.com/wLuEQ710 Мне тоже пришлось добавить путь к php – snaksa

-1

Установите параметр --env в команде cronjob, как это:

* * * * * /usr/local/bin/php /usr/lib/myApp/app/console --env=prod >> /usr/lib/myApp/forumLog.txt 2>&1 
+0

damn, downvoter - не видите ли вы отчет об ошибке в OP. сделайте лучший ответ вместо этого! – ihsan