如何制作 cron 来执行 php 脚本?

How can I make a cron to execute a php script?

我想在我的服务器上每五分钟执行一个 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 到一个文件,但它使文件为空。 谁能帮帮我?

此致

您使脚本可执行的做法是正确的。

如果需要再做一次

$ 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 分钟检查一次 activity。


更新:

在您的 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 标志,这样我们就不会每次都覆盖。

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