gpt4 book ai didi

php - 为什么cronjob默认在public_html之外写?

转载 作者:行者123 更新时间:2023-12-04 19:36:56 26 4
gpt4 key购买 nike

我为 public_html 文件夹名称 cron.php 中的文件定义了一个简单的 cronjob,该文件每分钟将当前日期时间插入 log.txt 文件中。

/usr/local/bin/php -f /home/{{user}}/public_html/cron.php >/dev/null 2>&1

这每分钟都在工作,但是;
cron.php位于 /home/{{user}}/public_html/cron.php
cron.php , $filename 值如下:
$filename= "log.txt";

如果我直接进入浏览器并输入 http://www.sitename.com/cron.php
它正在将当前日期时间写入 log.txt 文件并完美运行。

crontab 每分钟都在做同样的事情,但是,如果这个脚本触发了
通过 cron 服务 log.txt 文件写入 /home/{{username}}/文件夹,

所以在public_html之外。

怎么可能,我该如何解决这个问题?

注意:如果我将文件名值更改为 $filename = "/home/{{user}}/public_html/log.txt";然后它再次工作。但我不想指定完整路径,我需要创建一个 log.txt文件在同一个文件夹中。

最佳答案

发生这种情况是因为您的 Cron 工作目录与您的 http 服务器不同。只需将您的 crontab 更改为:

cd  /home/{{user}}/public_html ; /usr/local/bin/php -f /home/{{user}}/public_html/cron.php >/dev/null 2>&1

或者恕我直言,更好的解决方案是将其更改为:
wget -q -O /dev/null http://{{your website}}/~{{your username}}/cron.php 

关于php - 为什么cronjob默认在public_html之外写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49026918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com