我已经设置了一个cron作业来运行。它执行一个名为cronj.php的php文件 但它不起作用,我得到的cron工作通知是:
/root/website/myworld/blabla/cronj.php: line 1: ?php: No such file or directory
该文件中的第1行只是一个php标记<?php
我不知道如何
答案 0 :(得分:7)
Cron正在执行该文件,就像它是一个shell脚本一样。通常你会在文件顶部插入一个shebang行(如#!/usr/bin/env php
),以便shell知道如何调用它,但是PHP不喜欢它 - 因为它输出了标签之外的所有内容。因此,而不是:
0 3 * * * /mypath/myscript.php ...
试试这个:
0 3 * * * /usr/bin/env php /mypath/myscript.php ...
或使用@ Ravenex的伎俩。
编辑我当然是因为假设PHP以一致的方式行事而受到了警告。显然,shebang 在PHP中工作。我向@ chess007道歉。
答案 1 :(得分:4)
我们使用cron在php facebook游戏中运行夜间任务。我们这样使用卷曲:
/usr/bin/curl http://www.ourdomain.com/page.php
如果我没记错,我们在使用localhost时遇到了一些问题,试图避免外部查找。此外,我们尝试使用php命令行执行,这主要起作用但引起了一些奇怪的错误。
答案 2 :(得分:1)
尝试调用网址(http:// .....)。
显然没有将其解析为PHP脚本。
编辑: 请显示您使用的cronjob,以验证我的预感是否正确。
答案 3 :(得分:0)
使用此设置您的cron并在您的cron设置Cpanel中提供电子邮件地址,以便在cron成功运行时收到电子邮件
wget -O - http://YOURSITE/cron.php