好吧,我一直在努力完成这个cron工作一整天而且没有取得进展。 我已经在终端(MAC)中添加了几个代码,每个人都在这个网站上说,但没有一个能够工作。 我见过的代码是:
* * * * * php /usr/local/php5/bin/php5 /path/to/file/
或其他类似的东西。但是,它们都不起作用。
代码有问题吗?如果是这样,请指出。
如果没有,我完成了cron工作。
我找到了另一个PHP脚本,可以编写每秒插入数据到MYSQL表中,但我不认为这个也可以。
<?php
$start = microtime(true);
set_time_limit(60);
for ($i = 0; $i < 59; ++$i) {
doMyThings();
time_sleep_until($start + $i + 1);
}
?>
这段代码对吗? 有没有其他我可以使用的方法(用上面的php脚本编写),你知道吗?
答案 0 :(得分:3)
不正确:
* * * * * php /usr/local/php5/bin/php5 /path/to/file/
^^^--php executable
^^^^^^^^^^^^^^^^^^^^^^^^---script to run
你告诉php要自己运行。 cron行应该简单:
* * * * * executable arguments
e.g。
* * * * * /usr/bin/php /path/to/script.php
答案 1 :(得分:0)
我更喜欢使用-f标志来明确告诉PHP运行此脚本
* * * * * /usr/bin/php -f /path/to/script.php
很多人都忘了,cron几乎没有环境变量,特别是没有$ PATH ..所以命令必须有完整的文件路径才能工作..例如;
php -f ./myscript.php
将从命令行工作,但不能从cron工作。要从cron运行,它需要两个完整的路径..
/usr/bin/php -f /home/mydir/myscript.php