Crontab -e file_put_contents 在 sript php 中不起作用

问题描述 投票:0回答:1

我有 sript.php

当我在 Linux 终端中运行脚本时,它可以工作并保存文件。 当我在 crontab 中设置它时,脚本启动,但文件未保存。 我还将目录和文件的 chmod 权限更改为 777。

$url = 'https://www.example.cz/example.xml'; 
$file_name = basename($url);
if (file_put_contents($file_name, file_get_contents($url))) 
{ 
    echo "File downloaded successfully"; 
} 
else
{ 
    echo "File downloading failed."; 
}

谢谢您的建议。

php linux cron
1个回答
0
投票

在我看来,当您在与输出文件相同的目录中运行脚本时,它可以从终端运行。 crontab 将需要服务器上的完整路径,而不仅仅是文件名。您需要在此行添加文件名的完整路径,

$file_name = '/path/to/file/' 。基本名称($url);

假设执行 cron 脚本的用户具有输出文件及其目录所需的权限,这应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.