在ovh cron任务中的symfony2 commande

时间:2015-11-20 08:14:38

标签: symfony cron command cron-task ovh

我必须在syron任务中放入一个symfony命令。 我不在专用服务器中,所以我必须从OVH管理器界面创建它们。

我的问题是我无法在其中编写命令,只给它一个文件来执行。

我尝试了多个解决方案,但没有一个正在运行。 经过与OVH支持的大量讨论,以及他们的许多错误和愚蠢的答案(这种支持真是太可惜了!),我仍然不明白为什么我的cron没有工作。

我做了什么,并且从浏览器中完美运行的是我将以下行放在php文件中:

exec("/usr/local/php5.4/bin/php app/console my:command");

我知道这不是一个好方法,但这是唯一有效的方法:/

问题是这个从浏览器工作的php文件不能用于cron任务。

有人看到了合乎逻辑的解释吗?

感谢您的回答

纪尧姆

编辑

这是我的crontab:

enter image description here

cronCache.php是我放的地方:

exec("/usr/local/php5.4/bin/php app/console my:command");

当我访问www.myurl.com/cronCache.php时,该命令可以正常工作

编辑2

解决了这个问题。应用程序/控制台的路径是错误的,我没有找到它。我不得不这样说:

exec("/usr/local/php5.4/bin/php /home/my-server-name/www/app/console my:command");

1 个答案:

答案 0 :(得分:0)

是。如果只是将/usr/local/php5.4/bin/php app/console my:command放在crontab中,则执行的上下文不在您的应用程序路径中,而是在服务器用户的主目录中。

准确地说,app/console文件夹不在您的用户主页中,而是在您的项目中。只需使用您输入的代码在项目根文件夹中创建一个php文件,然后从crontab

执行该文件

或通过以下方式更改您的命令:/usr/local/php5.4/bin/php [your/project/path]/app/console my:command

编辑:

我有更多解​​决方案:

首先,您的cronCache.php服务器上的用户是否具有执行权?在这类服务器上,只有www-data用户可以在www文件夹中拥有此权限。

第二种选择: 尝试通过以下方式更改您的exec命令:

exec("/usr/local/php5.4/bin/php ./app/console my:command");

明确定义路径。