1

我有一个 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 工作才能工作。谢谢!

4

4 回答 4

1

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

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

改变:

require_once "zip_processing_file";

至:

require_once $zip_processing_file;
于 2011-04-29T17:55:32.203 回答
0

看起来你想要

require_once "/Mail-test/" . $zip_processing_file;
于 2011-04-29T18:19:09.257 回答
0

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

像:'/var/www/..../zip_processing_file.php';

于 2011-04-29T17:49:27.637 回答
0

因此,按照您的代码,从此:

$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()或任何其他基于文件的操作时,它必须接收文档相对路径或服务器根路径。

于 2011-04-29T17:52:53.263 回答