【发布时间】:2021-01-13 17:33:19
【问题描述】:
我想创建一个 cronjob 来在 Ubuntu 上执行一个 .php 文件,但它目前不起作用。 .php 文件位于 /var/www/createfile.php 以创建文本文件。 我试图在 ssh 上执行一些命令。如下
'php /usr/bin/php /var/www/createfile.php' after that,
'/user/bin/php /var/www/createfile.php' after that,
'php /var/www/createfile.php'
(那些是在我发现上一个命令不起作用后执行的)
这些命令的结果是相同的,没有预期的“.txt”文件。 但是,当我在存储“createfile.php”的目录中运行“php createfile.php”时,我得到了一个“.txt”文件。
我不太确定我做错了什么?
提前致谢。
// 下面是我要更新的内容,上面的陈述可能会让你们中的一些人感到困惑。对此我很抱歉。
这是'.php'中要执行的代码
> <?php
$myfile = fopen("newfile.txt", "w");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);
?>
显然,它只是简单地创建一个包含一行短语的文件。 这是我尝试过但不起作用的方法
- create cronjob like 'minute * * * * php /var/www/createfile.php'
但是,该文件是由其他用户创建的(假设是 Alice) 我不知道 Alice 与 root 权限是否值得关注?
但是:目前有一种工作方式。 当我位于“/var/www”时,我必须运行“php createfile.php”之类的命令(它是“createfile.php”所在的路径)
【问题讨论】:
-
没有看到代码很难说。
-
您的用户没有权限在您所在的目录中写入文件。您需要在 php 文件中执行某些操作,例如
./file.txt或__DIR__.'file.txt或其他内容。如果您打开错误报告,它会告诉您问题。 -
您的第二个示例将起作用。但它是“usr”,而不是“user”。 :)
-
Cron 可能以不同的用户、不同的目录或其他权限运行。