Cron作业不会处理require_once

时间:2011-04-29 17:45:05

标签: php cron require-once

我有一个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 个答案:

答案 0 :(得分:1)

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

但是,Upload问题可能是因为您的代码未插入require_once变量。

变化:

$zip_processing_file

要:

require_once "zip_processing_file";

答案 1 :(得分:0)

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

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

答案 2 :(得分: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文件的FULL服务器路径。

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

答案 3 :(得分:0)

看起来你想要

require_once "/Mail-test/" . $zip_processing_file;
相关问题