Cron错误消息;是我的脚本导致错误?

时间:2009-08-04 16:10:53

标签: php cron

我有一个cron工作,理想情况下我想每小时运行一次(它是在FB加速器上并处理实时社交内容,因此每小时一次不会削减它)

1)我可以拥有一个包含“run(),sleep(60),run()......”的cron作业,持续60分钟吗?

2)跑去的频率,目前输出:

...web/public/mysqltest.php: ?php: cannot open
...web/public/mysqltest.php: require_once: not found
...web/public/mysqltest.php: include_once: not found
...web/public/mysqltest.php: include_once: not found
...web/public/mysqltest.php: syntax error at line 5: `(' unexpected

(路径的其余部分在那里)。

如何开始调试该消息?我很奇怪我的服务器无法打开PHP文件。在浏览器中运行时,它的工作令人钦佩。脚本的前6行是:

<?php
require_once 'facebook.php';
include_once 'lib.php';
include_once 'config.php';
$facebook = new Facebook($api_key, $secret);
get_db_conn();

据我所知,没什么特别的。

我可以确认include / required文件确实在同一目录中。他们需要一定级别的访问权限吗?任何和所有的帮助将不胜感激。

6 个答案:

答案 0 :(得分:3)

由于它是在内部调用的,因此它不会被服务器解析。 你的cron作业的开头应该包括你的php解析器的路径

例如:

/usr/bin/php /home/path_to/php_file/yourfile.php

你需要找到自己的服务器的PHP路径

答案 1 :(得分:2)

  1. 我不熟悉。

  2. 你应该在你的cron脚本中调用/ path / to / php file.php。看起来它现在正在尝试使用bash。

答案 2 :(得分:2)

看起来PHP源代码是作为shell命令列表执行的 - 确保你通过PHP解释器运行它。

答案 3 :(得分:2)

1 cron脚本执行时间没有限制。就个人而言,我有一个cron php脚本,在执行后持续超过45分钟。请注意,在这种情况下,您可能需要更改php.ini,因为包含php脚本执行时间限制。

2 你应该放下以下

#!/usr/bin/php

在php脚本的开头。通过这种方式,您可以像通常的脚本一样从bash执行它 完成此操作并进行测试后,请输入cron。

答案 4 :(得分:0)

如果在脚本中指定绝对路径而不是相对路径,cron将能够找到它们。从cron运行时,您的脚本不会在其目录中运行。

答案 5 :(得分:0)

您必须知道您的环境变量未使用cron定义。

在您的会话中,您可以致电

php my_php_file.php

并且它有效,因为php进入了PATH变量的目录。

始终建议在cron作业中使用完整路径名。

您可以执行一个脚本来定义您需要的所有变量。