如何让cron执行php脚本?

时间:2015-10-13 09:40:32

标签: php cron crontab

我想在我的服务器上每五分钟执行一个php脚本,它是一个单独运行的PHP脚本,我尝试了自我的浏览器以及控制台使用“php -f php_file.php”。但我需要每天自动执行它。我在Google上搜索并在这里制作它,但任何解决方案都适用于我:

首先我编辑我的crontab,然后重新启动cron以确保它已正确更新。

*/5 * * * * /usr/bin/php /var/www/myscript.php

我也尝试了以下内容:

*/5 * * * * /usr/bin/php -f /var/www/myscript.php

我也使脚本可执行,查看我的系统日志(我可以看到我的cron正确执行,但它不执行php脚本)我也尝试将cron的输出重定向到文件,但是它使文件为空。 有人可以帮帮我吗?

祝你好运

1 个答案:

答案 0 :(得分:1)

通过让脚本可执行,你走在正确的轨道上。

如果需要,再做一次

$ chmod +x script.php

将其添加到文件的最顶部:

#!/usr/bin/php
<?php
// here goes your script

你可以像这样运行它来测试脚本是否执行

$ ./script.php

设置您的cron工作,如下设置一些日志记录,但要确保从脚本中输出内容,使用printecho以及相关消息。

*/5 * * * * /var/www/script.php >> /var/www/script.log 2>&1

我们将标准输出和错误重定向到script.log文件。

每5分钟检查一次活动。

更新

在php脚本中试试这个

$file = '/var/www/script.txt';
for($i=0;$i<9;$i++){
    $entry = date("Y-m-d H:i:s") . " " . $i . PHP_EOL;
    echo $entry; // this should write to the log file

    file_put_contents($file, $entry, FILE_APPEND | LOCK_EX); 
    // and this should write to the script.txt file
}

基本上我们给出文件的完整路径并传递FILE_APPEND标志,这样我们就不会每次都覆盖。

运行脚本并检查文件是否已创建,默认行为是创建文件(如果文件不存在)。