【问题标题】:php crontab not working while execution from browser is successful从浏览器执行成功时,php crontab 不工作
【发布时间】:2013-02-20 02:22:07
【问题描述】:

最近,我在托管服务提供商的 crontab 中运行的 php 脚本遇到了以下问题。该脚本用于从远程位置解析 xml 文件。初始脚本(在 crontab 中运行的那个)正在通过 include 调用另一个脚本(它是执行 xml 解析的那个):

include 'myXMLreader.php';

当从浏览器执行脚本时,一切都运行良好(xml 被解析并存储在数据库中)。但是,当从 cron 运行时,我收到以下错误:

“警告:myXMLreader::read() [xmlreader.read]:读取时发生错误...”,脚本停止。

奇怪的是,same脚本几天前就完美地从crontab中执行了。

为了执行脚本,我在我的 cron 管理器中使用以下行:

00 01 * * * php -q /home/my_domain/public_html/my_parser_script.php

我还将脚本执行的时间限制设置为零 (0),以避免因违反时间限制而被启动(因为 xml 解析需要超过 6 分钟才能完成)。

set_time_limit(0);

关于为什么会发生这种情况的任何帮助/建议?

发送

【问题讨论】:

  • 这个 cron 作业在哪个用户 ID 下运行,您可能需要在 cron 作业中指定 php 的完整路径,例如/usr/bin/php -q etc... 作为一般说明:默认情况下,CLI 上的 PHP 通常禁用时间/内存限制。这些通常仅在 SAPI(网络服务器内)模式下应用。
  • 可能是文件权限问题。
  • 我已经要求我的托管服务提供商让我知道运行 cron 的用户 ID 和 php 的完整路径(顺便说一下,有没有办法让我自己找出后者?)。同时告诉你,我的两个php文件都设置了755权限

标签: php crontab


【解决方案1】:

这可能是本地 DNS 问题吗? 您可以通过将 IP 和域(xml 文件所在的位置)添加到服务器 /etc/hosts 文件来轻松测试这一点。

【讨论】:

  • 这是一个共享主机方案,所以我认为我不能更改 /etc/hosts 文件
猜你喜欢
  • 1970-01-01
  • 2017-04-29
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
相关资源
最近更新 更多