亚马逊MWS PHP客户端库在cron中执行时包含路径错误

时间:2018-04-19 19:11:52

标签: php amazon-web-services cron autoload amazon-mws

因此,当我直接在浏览器中调用URL时,我的工作代码完美无瑕。但是,当我在cron中设置相同的文件时,它会导致类找不到错误。我相信set_include_path函数导致错误。

我没有任何运气修改了文件路径。以下是.config.inc.php的外观。

 set_include_path(get_include_path() . PATH_SEPARATOR . 'MarketplaceWebServiceProducts');

     function __autoload($className){
        $filePath = str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
        $includePaths = explode(PATH_SEPARATOR, get_include_path());
        foreach($includePaths as $includePath){
            if(file_exists($includePath . DIRECTORY_SEPARATOR . $filePath)){
                require_once $filePath;
                return;
            }
        }
    }

我尝试在$ filepath变量前面以及set_include_path()函数中的实际文件夹MarketplaceWebServiceProducts之前添加dirname(__FILE__)。但没有运气。

这是我的cron命令

php -q /home4/username/example.com/_manager/a/_data_ru/getASINData.php

php客户端库位于/ _data_ru /文件夹中。

有人可以指导我朝着正确的方向努力,使其在cron中运行吗?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

尝试类似

的内容
 i.e., From this ;extension=php_fileinfo.dll to extension=php_fileinfo.dll
but as I mentioned my apache don't have this extension.

您正在使用相对路径,因此结果将取决于您的脚本执行的位置。如果您需要父目录,则应使用__DIR__dirname()}以使其更具可预测性:

cd /home4/username/example.com/_manager/a/_data_ru && php -q getASINData.php