我正在尝试在 MacOS 上使用 crontab 运行 php 脚本。我的 crontab 看起来像这样:
* * * * * /opt/homebrew/bin/php /Users/dan/Documents/test.php
test.php 看起来像这样:
<?php
file_put_contents(__DIR__ . '/some-file.txt', 'Hello there', FILE_APPEND);
?>
但是脚本似乎没有运行。如果我直接在终端中输入
/opt/homebrew/bin/php /Users/dan/Documents/test.php
,则脚本运行正常 - 在我的文档文件中创建 some-file.php
,其中包含文本“Hello There”。
我还尝试使用
sudo crontab -e
将此 cron 命令添加到 root 用户 cron 选项卡中,但这似乎也没有运行该脚本。
有什么想法我做错了吗?
向 cron 命令添加一些日志记录以查看任何输出或错误
* * * * * /opt/homebrew/bin/php /Users/dan/Documents/test.php >> /Users/dan/Documents/cron.log 2>&1
如果您尝试以 root 身份运行 cron 作业(通过 sudo crontab -e),请确保您的脚本具有适当的权限。
您还可以创建一个更简单的 PHP 脚本,仅将当前日期和时间附加到文件中,然后查看是否执行。如果是这样,那么问题可能出在 PHP 脚本本身。
$date = date('Y-m-d H:i:s');
file_put_contents(__DIR__ . '/time_log.txt', $date . PHP_EOL, FILE_APPEND);
更新您的 crontab 以运行这个新脚本,如果您看到附加了日期和时间,则意味着 cron 作业正在按预期工作。