0

test3.php

<?php
require("../includes/config.php.inc"); 
echo "done";
?>

当我在我的网络浏览器中启动它时工作正常(它说完成),但是当我 /usr/local/bin/php -f /home3/site/public_html/order/functions/test3.php用来运行与 Cpanel cron 作业相同的文件时,我收到一封电子邮件,说有一个错误。

警告:需要(../includes/config.php.inc):无法打开流:第 1 行的 /home3/site/public_html/order/functions/cron_renewal.php 中没有此类文件或目录

4

2 回答 2

2

不同之处在于脚本从浏览器或 cron 运行时,当前目录不同。尝试使用dirname(__FILE__)or__DIR__代替。例如,尝试:

<?php
require(__DIR__ . "/../includes/config.php.inc"); 
echo "done";
?>

在我看来,这是最灵活的方式,因为您不必使您的 cron 命令变得复杂(您只需运行脚本),您可以沿着硬盘驱动器移动源并且您不必对任何路径进行硬编码。


编辑:同样的方法适用于其他平台,例如 python、ruby 等;)这只是一个“好习惯”;)

于 2013-10-13T20:06:12.280 回答
0

也许这样?

cd /home3/site/public_html/order/functions/;/usr/local/bin/php -f test3.php

包含相对于当前工作目录。(也许这不是正确的目录......您应该 cd 到文件的父目录,该目录在网络上工作。)

于 2013-10-13T20:05:52.737 回答