【问题标题】:Amazon MWS PHP Client library include path errors when executed in cron亚马逊 MWS PHP 客户端库在 cron 中执行时包含路径错误
【发布时间】:2018-04-21 23:25:23
【问题描述】:

因此,当我直接在浏览器中调用 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 中也能正常工作?

非常感谢。

【问题讨论】:

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


    【解决方案1】:

    试试类似的东西

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

    您使用的是相对路径,因此结果将取决于您的脚本执行的位置。您应该使用__DIR__(如果您需要父目录,请使用dirname())以使其更可预测:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      相关资源
      最近更新 更多