我有一个 PHP 脚本,它只是通过电子邮件向我发送测试消息。如果我进入我的网络服务器 cPanel,我可以创建一个每 10 分钟运行一次脚本的 cronjob,并且它运行良好。
我使用以下设置在 cPanel 中手动安排 cron 作业:
10 * * * * php -q /home1/user1/public_html/mail.php
上面再次运行良好,但是当我尝试通过 PHP 而不是 cPanel 创建 cron 作业时,它永远不会运行。当我检查 cPanel 以查看该作业是否实际上是由我的 php 脚本创建的时,它确实出现了。cPanel 中显示的所有设置都是正确的,它只是不运行脚本。
这是我用来创建 cron 作业的 PHP 代码:
$output = shell_exec('crontab -l');
file_put_contents('/tmp/crontab.txt', $output.'10 * * * * php -q /home1/user1/public_html/mail.php'.PHP_EOL);
echo exec('crontab /tmp/crontab.txt');
我想这可能是一个许可问题或类似的东西?不太确定为什么当我创建它时工作有效,但当 PHP 创建它时却没有。