由于某种原因 PHP 无法打开该文件。尝试用“ls -la”替换 /usr/local/bin/php -f 以尝试获取更多信息。记住不要在 crontab 中引用文件名:php -f filename.php,而不是 php -f "filename.php",除非它包含空格——然后最好使用单引号。
可能,尝试“ls -la /home”、“ls -la /home/username”、“ls -la ~/public_html”等等。
也尝试附加
2>&1
到命令行,以防只有标准输出被邮寄给你(我真的不这么认为,但确保成本很低)。
另一种可能
crontab 指的是/home/username/public_html/mls/test.php
- 即用户名的主目录最常见值内的公共 HTML 目录。
cron 作业可能没有以适当的用户和权限运行,或者它“看到”的用户实际上是虚拟用户 - 根本没有“/home/username” - 和“主目录”在其他地方,甚至可能只要 cron 作业运行就存在。在这种情况下,解决方案可能是参考
~/public_html/mls/test.php
或者,如上所述,首先运行一个命令,例如pwd
或ls -la
以确定 cron 作业的当前工作目录的确切位置。
如果这也失败了,那么另一种解决方法可能是通过 curl 或 lynx 调用 PHP HTTP 处理程序:
/usr/bin/curl http://www.thishostname.com/mls/test.php
可能使用某些环境变量或 curl 标头或 _GET 选项将脚本作为 cron 作业进行身份验证,并避免从外部访问它。