[英]Openshift cron doesn't run php file
我的应用程序中有2个.php文件-book.php和weather.php。 我在/.openshift/cron/minutely中创建一个名为“ runscript”的文件。 该文件内容:
#!/bin/bash
php -f $OPENSHIFT_REPO_DIR/weather.php
该脚本每分钟都会向我发送一条消息到电话,可以。 然后我替换为:
php -f $OPENSHIFT_REPO_DIR/book.php
该脚本也必须向我发送消息,但是没有任何阻碍。 但是,如果我只是通过Web浏览器运行此脚本(转到http://xxx-xxxxxxx.rhcloud.com/book.php ),那么我就收到了消息。 这怎么可能? 魔法?
您是否错过了#!/bin/bash
部分? 这是运行shell脚本所必需的。
有关为什么您的cron作业未执行的原因,请检查OpenShift上的cron日志。 SSH进入设备时,您可以在~/app-root/logs/cron_*.log
找到它们。
确保您的cron作业可以使用chmod
,并且具有@gnaanaa所说的shebang行。 另外,请检查您是否拥有.openshift/cron/minutely/jobs.{allow,deny}
文件之一,因为它们可能会导致cron跳过您的工作。 (有关更多信息,请参见cron自述文件 。)
而你的cron作业工作后,你可以摆脱包装脚本的runscript
,并有cron的通话book.php
直接。 要做到这一点,地方book.php
直接进入.openshift/cron/minutely
,使其可执行,这家当添加到它:
#!/usr/bin/env php
希望这可以帮助。
我也使用openshift并用cron执行了php文件。
#!/bin/bash
php ${OPENSHIFT_REPO_DIR}index.php
乍一看,这通常会执行脚本。 但是,没有输出。 问题是,无法加载所有必需的php文件,因为工作目录与Web服务器加载时的工作目录不同。 在php脚本本身中设置有效的Directoy可以防止此错误,并使脚本可以由cron完美执行。
这应该可以帮助某些人使其脚本运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.