Php Cron不创建文件

Php Cron不创建文件,php,cron,Php,Cron,使用以下代码,我将使用从数据库获得的信息创建一个xml文件: <?php //include 'config.php'; include '/var/www/html/folder/config.php'; $now=date('Y-m-d h:i:s'); echo "Date: ".$now."<br><br>"; $sql="SELECT * FROM awards WHERE active=3"; $result=mys

使用以下代码,我将使用从数据库获得的信息创建一个xml文件:

<?php

//include 'config.php';
include '/var/www/html/folder/config.php';

$now=date('Y-m-d h:i:s');
    echo "Date: ".$now."<br><br>";

        $sql="SELECT * FROM awards WHERE active=3";
    $result=mysql_query($sql);

        // create doctype
$dom = new DOMDocument("1.0");

// create root element
$root = $dom->createElement("data");
$dom->appendChild($root);
$dom->formatOutput=true;

        while($data=mysql_fetch_array($result)){
            echo $data['title'];
       // create ITEM
        $item = $dom->createElement("item");
        $root->appendChild($item);

        // ID DOM
        $subitem = $dom->createElement("id");
        $item->appendChild($subitem);
        $text = $dom->createTextNode($data['id']);
        $subitem->appendChild($text);

        // title DOM
        $subitem = $dom->createElement("title");
        $item->appendChild($subitem);
        $text = $dom->createTextNode($data['title']);
        $subitem->appendChild($text);


        }
        if(unlink ("api/2.xml")){
    echo "deleted<br>";
}
    if($dom->save("api/2.xml")){
        echo "created";
        }


?> 

这是没有问题的,文件2.xml是在我手动执行时创建的

但是,当我将其添加到crontab时,日志显示cron正在执行(我获得了脚本开头回显的日期以及while循环中回显的标题),但是没有创建2.xml文件


有没有线索说明为什么它没有被创建

如果将脚本迁移到
cron
,则始终需要检查两件事:

  • 文件权限,cron作业可能会以不同的权限执行(提醒:
    root
    不是解决所有问题的解决方案)
  • 隐式路径,cron作业将具有不同的工作目录
我们无法检查您的文件权限,但我可以告诉您,您使用的是隐式路径,很可能无法以这种形式工作:

if(unlink("api/2.xml")){
    echo "deleted<br>";
}
if($dom->save("api/2.xml")){
    echo "created";
}
if(取消链接(“api/2.xml”)){
回显“已删除
”; } if($dom->save(“api/2.xml”)){ 回声“创造”; }

现在,文件夹
api
漂浮在文件系统的某个地方。使用绝对路径,您就可以开始了。

如果您将脚本迁移到
cron
,则始终需要检查两件事:

  • 文件权限,cron作业可能会以不同的权限执行(提醒:
    root
    不是解决所有问题的解决方案)
  • 隐式路径,cron作业将具有不同的工作目录
我们无法检查您的文件权限,但我可以告诉您,您使用的是隐式路径,很可能无法以这种形式工作:

if(unlink("api/2.xml")){
    echo "deleted<br>";
}
if($dom->save("api/2.xml")){
    echo "created";
}
if(取消链接(“api/2.xml”)){
回显“已删除
”; } if($dom->save(“api/2.xml”)){ 回声“创造”; }

现在,文件夹
api
漂浮在文件系统的某个地方。使用绝对路径就可以了。

是否检查了明显的:文件权限和环境?api文件夹拥有所有权限。。否则它将无法手动工作。。还有什么我要查的吗?谢谢@user638009:是的,如果我看对了,你正在为文件提供一个隐式路径。哎呀,鲍比,非常感谢,我看不见!!在这种格式下,我如何接受您的回答?您是否检查了显而易见的:文件权限和环境?api文件夹拥有所有权限。。否则它将无法手动工作。。还有什么我要查的吗?谢谢@user638009:是的,如果我看对了,你正在为文件提供一个隐式路径。哎呀,鲍比,非常感谢,我看不见!!在这种格式下,我如何接受您的答案?或者在其中的某个位置放置
chdir()
以设置隐式路径。或者在其中的某个位置放置
chdir()
以设置隐式路径。