2017-02-17 44 views
0

我试图运行一个cron作业的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

在我自己的运行cronjobs的Symfony控制台中,我通常会运行一个shell脚本,它首先变成apprppriate目录,然后运行console命令。

这里有一个已经运行了一年或两年的例子:

文件:/etc/cron.d/systemChecks(运行shell脚本为用户: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文件也适用。 shell脚本将目录更改为项目的基础目录,然后运行bin/console

+0

谢谢你的回复。现在,我收到错误消息:www-data未找到: '/ bin/sh:1:www-data:not found' – snaksa

+1

Cron/crontab文件的不同形式有稍微不同的格式。例如'/ etc/cron。* /'中的文件包含一个用户名来运行文件。 crontabs中已经基于每个用户的行(即'crontab -l'或'-e')不需要这些行。 –

+0

它仍然没有执行该命令。我创建了这个.sh文件,并使用echo检查它是否由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

该死的,downvoter - 你不能看到OP中的错误报告。反而做出更好的答案! – ihsan