我已经设置了一个cron作业来运行.它执行一个名为cronj.php的php文件但它不起作用,我得到的cron作业通知是:
/root/website/myworld/blabla/cronj.php: line 1: ?php: No such file or directory
Run Code Online (Sandbox Code Playgroud)
该文件中的第1行只是一个<?php我不知道如何的PHP标记
Cron正在执行该文件,就像它是一个shell脚本一样.通常你会在#!/usr/bin/env php文件顶部放一个shebang行(比如),这样shell就知道如何调用它,但是PHP不喜欢它 - 因为它输出了它标签之外的所有内容.因此,而不是:
0 3 * * * /mypath/myscript.php ...
Run Code Online (Sandbox Code Playgroud)
试试这个:
0 3 * * * /usr/bin/env php /mypath/myscript.php ...
Run Code Online (Sandbox Code Playgroud)
或使用@Ravenex的伎俩.
编辑我正确地告诫我假设PHP以一致的方式运行.显然,shebang 确实在PHP 中工作.我向@ chess007道歉.