【问题标题】:Opening and writing to files in cron job在 cron 作业中打开和写入文件
【发布时间】:2017-09-10 23:53:56
【问题描述】:

我使用 Hostinger 在我的网站上设置了一个 cron 作业,该作业应该抓取新闻内容并将信息转储到文本文件中。这不是我想要的 cron 输出,而是运行脚本的副产品。

如果我只是浏览它所在的网页,我就会成功。它正确打开文件并将新闻数据写入其中。但是,当它由 cron 作业运行时,我得到了输出

PHP Warning:  fopen(../txtdumps/newsdump.txt): failed to open stream: No such file or directory in /home/u189772133/public_html/cronjobs/newsscrape.php on line 12
Unable to open file

我以前从未做过 cron 工作,所以打开并写入一个文件中的文件只是一种不好的做法,或者这只是一个路径问题?

【问题讨论】:

  • 可能是权限问题。当您从浏览器调用它时,脚本会以与您的网络服务器(Apache、Nginx 等)相同的用户身份运行(很可能是www-data)。当通过 cron 运行时,它以拥有 crontab 的用户身份运行(很可能是 u189772133 给定您的主文件夹名称)。该用户还必须能够写入文件。

标签: php cron


【解决方案1】:

检查您是否已授予 PHP 文件访问权限以将信息写入硬盘。

您也可以确保将模式传递给 fopen

fopen("../txtdumps/newsdump.txt", "w")

你可以检查这个权限问题

How do I give PHP write access to a directory?

【讨论】:

    猜你喜欢
    • 2012-07-17
    • 2011-05-29
    • 1970-01-01
    • 2020-05-08
    • 2019-10-10
    • 2013-05-09
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多