【问题标题】:Cron job won't process require_onceCron 作业不会处理 require_once
【发布时间】:2011-08-15 16:19:02
【问题描述】:

我有一个 Cron 作业设置,每 5 分钟运行一次。 Cron作业如下:

php /var/www/vhosts/default/htdocs/Mail-test/index.php

在我的 index.php 脚本的末尾如下:

$path = $base_path . trim($row['company']) . '/Users/' . trim($row['name']) . '/Upload/';
$zip_processing_file = $path . 'zip.php';

require_once "zip_processing_file";

但是,当运行 Cron 作业时,我收到一条错误消息,指出 = $zip_processing_file 的以下目录在 /var/www/vhosts/default/htdocs/Mail-test/ 中不存在

我似乎无法弄清楚这个问题。我已经尝试过包含,但这给出了同样的问题。我让它工作的唯一方法是把

header("location: $zip_processing_file");

然后从网络浏览器点击Mail-test/index.php,然后它将循环整个过程,但我无法通过网络浏览器完成,我需要 Cron 作业才能工作。谢谢!

【问题讨论】:

    标签: php cron require-once


    【解决方案1】:

    提到 /var/www/vhosts/default/htdocs/Mail-test/ 的错误消息似乎与 $zip_processing_file 中存储的路径无关(其中包含 Users和Upload) 所以这可能是一个单独的问题。

    但是,require_once 问题可能是由于您的代码没有插入 $zip_processing_file 变量。

    变化:

    require_once "zip_processing_file";
    

    收件人:

    require_once $zip_processing_file;
    

    【讨论】:

      【解决方案2】:

      很可能你应该给出 php 的物理地址。

      喜欢:'/var/www/..../zip_processing_file.php';

      【讨论】:

        【解决方案3】:

        所以,按照你的代码,从这里开始:

        $path = $base_path . trim($row['company']) . '/Users/' . trim($row['name']) . '/Upload/';
        $zip_processing_file = $path . 'zip.php';
        

        你应该得到类似的东西(取决于$base_path的内容:

        /var/www/vhosts/default/htdocs/company/Users/name/Upload/zip.php
        

        相反,你的错误是打印:

        /var/www/vhosts/default/htdocs/Mail-test/
        

        根据您的代码,这没有意义。

        您需要确保 $zip_processing_file 的内容包含您需要加载的 PHP 文件的完整服务器路径。

        header() 函数起作用的原因是因为它可以采用 web-root 相对路径。在 PHP 中使用require() 或任何其他基于文件的操作时,它必须接收文档相对路径或服务器根路径。

        【讨论】:

        • 我也试过了。更改了 $zip_processing_file 的完整路径。它现在将处理我的 Cron 作业,不会给我任何错误,但现在它似乎停止在我的 zip.php 文件处。 zip.php 脚本没有运行。
        • 您的 zip.php 文件的内容是什么样的?它有可执行权限吗?是否有需要调用的函数或要实例化的类?
        • 是的,我正在调用一个类:dUnzip2 类。我还使用 fopen 来读取 2 个 .txt 文件的内容。是的 zip.php 有 0777 测试权限。
        • dUnzip2 真的被调用了吗?我会开始使用 exit() 或 mail() 来找出你的脚本在哪里停止。如果不查看整个代码,就很难确定实际问题。
        【解决方案4】:

        看起来像你想要的

        require_once "/Mail-test/" . $zip_processing_file;
        

        【讨论】:

          猜你喜欢
          • 2014-11-04
          • 1970-01-01
          • 2015-12-13
          • 1970-01-01
          • 2022-07-15
          • 2011-05-29
          • 2011-09-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多