我正在使用cron作业来运行一个更新文本文件的php文件。
cron.php文件包含
<?php
echo date('l jS \of F Y h:i:s A');
$content = "some text here ".date('l jS \of F Y h:i:s A')."\n";
$fp = fopen("myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
我每分钟收到的电子邮件都包含日期。对于这里,每件事都很酷。 但myText.txt未更改
答案 0 :(得分:2)
这是因为当您使用cron作业时,PHP在与myText.txt
不同的文件夹中执行。
使用绝对路径指定文本文件的路径;
或
首先更改目录(使用shell脚本到cd
到您的工作目录并执行PHP文件)。运行shell脚本而不是PHP文件。
答案 1 :(得分:2)
文件路径相对于当前工作目录。这不一定与PHP文件所在的目录相同。"myText.txt"
在作为cron作业执行时可能会引用/myText.txt
(根目录)而没有明确的工作目录集,您的脚本可以在其中没有访问权限。
使用完整文件路径,例如"/home/thingsto/.../myText.txt"
或__DIR__ . '/myText.txt'
。
答案 2 :(得分:-1)
尝试指定文件“myText.txt”的绝对路径。看起来脚本将数据保存到错误的位置。