当使用cronjob执行时,php不会创建文件

当使用cronjob执行时,php不会创建文件,php,cron,Php,Cron,我有一个非常简单的php文件,每次运行时都会创建一个文本文档: $date = date('Y-m-d H-i-s', time()); $log_name = "Cronjob". $date; if($fh = fopen($log_name,'w')){ fwrite($fh, print_r($date)); fclose($fh); } 当我使用浏览器运行该文件时,会在服务器上创建一个txt文件。当我使用cronjob运行该文件时,它不会创建txt文件。 当我在服务器

我有一个非常简单的php文件,每次运行时都会创建一个文本文档:

$date = date('Y-m-d H-i-s', time());
$log_name = "Cronjob". $date;
if($fh = fopen($log_name,'w')){
    fwrite($fh, print_r($date));
    fclose($fh);
}
当我使用浏览器运行该文件时,会在服务器上创建一个txt文件。当我使用cronjob运行该文件时,它不会创建txt文件。 当我在服务器上转到private>cron.log时,我看到cronjob工作正常,结果被打印到cron.log中


有人能告诉我为什么吗?我需要在服务器上写入该文件:)

在cronjob中执行时,需要提供完整路径。脚本不会在其所在的目录中执行,因此相对路径将不起作用

$absolut_path = "whatever your absolutpath is"; // maybe something like /var/www/html/
$log_name = $absolut_path."Cronjob". $date;

您能使用
$log\u name
的完整路径吗?它是被创造出来的,但它可能在某个地方。因此,最好使用完整路径来查看文件是否已创建。其次,检查您使用的目录是否具有完全控制权?就像读/写给用户一样?这是否意味着我的php文件中的每个路径都需要使用绝对路径?例如,另一个php文件中的函数不起作用:重命名(“/web/something.html”,“/web/something.html”);好的,它现在工作得很好:我使用下面的语句和dirname(FILE)来解决这个问题:$log\u name=dirname(FILE)。“/Cronjob”$日期;“/web/something.html”是一个完整路径,因此应该可以工作。