我已经设置了一个要运行的 cron 作业。它执行一个名为 cronj.php 的 php 文件 但它不起作用,我收到的 cron 作业通知是:
/root/website/myworld/blabla/cronj.php: line 1: ?php: No such file or directory
该文件中的第 1 行只是一个 php 标记 <?php
我不知道怎么办
最佳答案
Cron 正在执行该文件,就好像它是一个 shell 脚本一样。通常你会在文件的顶部放入一个 shebang 行(比如 #!/usr/bin/env php
),这样 shell 就知道如何调用它,但是 PHP 不喜欢它- 因为它输出标签之外的所有内容。因此,而不是这个:
0 3 * * * /mypath/myscript.php ...
试试这个:
0 3 * * * /usr/bin/env php /mypath/myscript.php ...
或使用@Ravenex 的技巧。
编辑 我因假设 PHP 以一致的方式运行而受到正确的警告。显然,shebang 确实在 PHP 中工作。我向@chess007 致歉。
关于php - 由于 <?php 标记导致 cron 作业出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8626907/