使用php运行cron作业时出错,如何修复?

时间:2011-01-08 11:59:05

标签: php cron

$_SERVER['DOCUMENT_ROOT']/file.php: line 1: ?php: No such file or directory
$_SERVER['DOCUMENT_ROOT']/file.php: line 2: syntax error near unexpected token `0'
$_SERVER['DOCUMENT_ROOT']/file.php: line 2: `set_time_limit(0);'

上面的错误,我在运行cron时得到了,

  • 如何修复?
  • 和文档根目录
  • 的路径
  • 我应该为此提供虚拟路径,例如http://domain.com/file.php,也尝试这个,但它会返回错误“非此类文件目录”...

任何人都可以帮助我...在此先感谢..

此致 Vinoth S

4 个答案:

答案 0 :(得分:8)

您正在直接调用.php文件。 shell查找shebang并查找<?php,它不是有效的命令行解释器。

您必须在脚本前添加以下内容:

#!/usr/bin/php5

或者在你的crontab中:

* * * * * /usr/bin/php5 /path/to/the/script.php

答案 1 :(得分:4)

感谢你的所有评论...对我来说非常有用......但是我一路尝试,但我的托管域名不支持,多数民众赞成我试过,

                          php -q /path/to/the/script.php
像那样,它的工作正常,我的cron现在正常工作......谢谢你们......

此致 Vinoth S

答案 2 :(得分:1)

#!/usr/bin/php5添加到脚本顶部,如goreSplatter's answer所示,非常适合您编写的脚本在一台计算机上运行。如果要确保脚本可以在其他可能安装了PHP的计算机上运行(例如/usr/local/bin/php5),那么可以使用env命令在当前用户下搜索php $ PATH:

#!/usr/bin/env php

答案 3 :(得分:0)

使用这行代码进行cron设置。此外,在您的cpanel中设置了一个电子邮件ID,您可以在cron成功执行时收到电子邮件,以便您知道已成功设置了cron作业。

wget -O - http://YOURSITE/cron.php?cron_key=abcd