当 cron 文件位于 public_html 目录之外时,Cron 作业不工作
Cron job not working when cron file is located outside public_html directory
我正在尝试向托管在远程服务器上的网站添加 php cron 作业。 cron 作业文件的路径是“/home/userid/domains/mywebsite.com/scripts/cron1.php”。我尝试了以下命令,其中 none 似乎执行了 cron 文件:
/usr/bin/php /home/userid/domains/mywebsite.com/scripts/cron1.php
cd /home/userid/domains/mywebsite.com/scripts && /usr/bin/php cron1.php
我的托管帐户没有显示任何 cron 结果错误。
但是,如果我将 cron 文件移动到 public_html 目录中并使用命令“curl https://mywebsite.com/cron1.php" 添加一个 cron 作业,它会按预期工作。但我想要 cron 文件在public_html 目录,所以我知道我不能使用 curl 命令。
请告诉我我做错了什么,或者当 cron 文件位于 public_html 目录之外时我如何让 cron 作业工作。
谢谢,
克莱门特
编辑:
我的目录树是:
用户
|- 域 (755)
...|- mywebsite.com (755)
......|- 数据(755)
.........|- cronresults.php (644)
......|- 脚本 (755)
.........|- cron1.php (644)
编辑:
cron1.php
<?php
$path = dirname(__DIR__) . "/data/cronresults.txt";
file_put_contents($path, "random text\n", FILE_APPEND);
?>
另一种方法是使用 lynx 命令(但你必须安装 lynx,比如 yum install lynx)
1 * * * * /usr/bin/lynx http://mywebsite.com/cron1.php -转储
如果您想改用PHP,您可以尝试更改
<?php
$path = dirname(__DIR__) . "/data/cronresults.txt";
file_put_contents($path, "random text\n", FILE_APPEND);
?>
改为绝对路径(如下,但要根据自己的真实路径调整)
<?php
$path = "/var/www/websitename/data/cronresults.txt";
file_put_contents($path, "random text\n", FILE_APPEND);
?>
我正在尝试向托管在远程服务器上的网站添加 php cron 作业。 cron 作业文件的路径是“/home/userid/domains/mywebsite.com/scripts/cron1.php”。我尝试了以下命令,其中 none 似乎执行了 cron 文件:
/usr/bin/php /home/userid/domains/mywebsite.com/scripts/cron1.php
cd /home/userid/domains/mywebsite.com/scripts && /usr/bin/php cron1.php
我的托管帐户没有显示任何 cron 结果错误。
但是,如果我将 cron 文件移动到 public_html 目录中并使用命令“curl https://mywebsite.com/cron1.php" 添加一个 cron 作业,它会按预期工作。但我想要 cron 文件在public_html 目录,所以我知道我不能使用 curl 命令。
请告诉我我做错了什么,或者当 cron 文件位于 public_html 目录之外时我如何让 cron 作业工作。
谢谢, 克莱门特
编辑:
我的目录树是:
用户
|- 域 (755)
...|- mywebsite.com (755)
......|- 数据(755)
.........|- cronresults.php (644)
......|- 脚本 (755)
.........|- cron1.php (644)
编辑:
cron1.php
<?php
$path = dirname(__DIR__) . "/data/cronresults.txt";
file_put_contents($path, "random text\n", FILE_APPEND);
?>
另一种方法是使用 lynx 命令(但你必须安装 lynx,比如 yum install lynx)
1 * * * * /usr/bin/lynx http://mywebsite.com/cron1.php -转储
如果您想改用PHP,您可以尝试更改
<?php
$path = dirname(__DIR__) . "/data/cronresults.txt";
file_put_contents($path, "random text\n", FILE_APPEND);
?>
改为绝对路径(如下,但要根据自己的真实路径调整)
<?php
$path = "/var/www/websitename/data/cronresults.txt";
file_put_contents($path, "random text\n", FILE_APPEND);
?>