我有一个有效的CRON请求(调用并返回一些结果)。
* * * * * links -dump https://my.domain/cron.php > /home/users/wooqash/public_html/my.domain/cron.txt 2>> /home/users/wooqash/public_html/my.domain/cron_errors.txt
cron.php文件:
<?php
$filename = $_SERVER["DOCUMENT_ROOT"]."cron.txt";
if (file_exists($filename)) {
$filesize = filesize($filename);
echo $filesize."<br />";
if ($filesize) {
$file = fopen($filename, "r");
echo "1<br />";
echo fread($file, $filesize)."<br />";
fclose($file);
}
echo "2<br />";
}
echo "<br />";
echo "test ".time();
?>
当我在网络浏览器(https://my.domain/cron.php)中打开此页面时,一切正常:
30
1
0 2 test 1576699141
2
test 1576699151
但是当CRON运行代码时:
0
2
test 1576699141
我不能在此主机上使用wget
或curl
,并且links
不能完美运行。为什么?
答案 0 :(得分:0)
您遇到此问题的原因是,在cli模式下运行时未设置$ _SERVER ['DOCUMENT_ROOT']。
尝试使用__DIR__来获取文件所在的文件夹,如下所示:
<?php
$filename = __DIR__ . DIRECTORY_SEPARATOR . 'cron.txt';