2015-01-20 98 views
0

我在我的应用程序 - book.php和weather.php中有2个.php文件。我在/.openshift/cron/minutely中创建一个名为“runscript”的文件。此文件内容:Openshift cron不运行php文件

#!/bin/bash 

php -f $OPENSHIFT_REPO_DIR/weather.php 

此脚本每分钟都会向我发送消息给我,但没关系。 然后我更换到:

php -f $OPENSHIFT_REPO_DIR/book.php 

此脚本必须给我留言过,但没有什么是happing。但是,如果我只是通过网页浏览器运行此脚本(请转至http://xxx-xxxxxxx.rhcloud.com/book.php),以便收到我的消息。这怎么可能?魔法?

+0

你确定你已经安装了cron墨盒吗? – ptrk 2015-01-21 07:57:13

+0

好吧,谢谢你的回答。我在book.php代码的最后添加了写日志文件的代码,它工作正常。但是第一部分代码不起作用。这部分必须在一些网站上写一些文字。如果我用浏览器运行它 - 写道。如果它与cron运行 - 不写。为什么? – tadiuzzz 2015-01-21 13:16:08

回答

0

你错过了#!/bin/bash部分?这需要运行shell脚本。

0

为什么你的cron作业没有执行,请检查OpenShift上的cron日志。当你进入你的装备时,你可以在~/app-root/logs/cron_*.log找到它们。

确保您的cron作业可以使用chmod执行,并具有@gnaanaa所说的shebang行。另外检查你是否有.openshift/cron/minutely/jobs.{allow,deny}文件之一,因为它们可能会导致cron跳过你的工作。 (有关详细信息,请参见cron README。)

而且你的cron作业工作后,你可以摆脱包装脚本runscript,并有直接的cron调用book.php。要做到这一点,直接将book.php.openshift/cron/minutely,使其可执行,这家当添加到它:

#!/usr/bin/env php 

希望这有助于。

0

我使用openshift aswell并执行一个cron的php文件以及。

#!/bin/bash 
php ${OPENSHIFT_REPO_DIR}index.php 

这会在一见钟情的情况下正常执行脚本。然而没有产出。问题是,所有必需的php文件无法加载,因为工作目录与Web服务器加载时不同。在php脚本中设置工作的directoy可以防止这个错误,并使脚本完全可以由cron执行。

这应该会帮助一些人获得脚本运行。