百度云SDK BUG - __HALT_COMPILER(); must be declared in a phar

try {
    //使用PHP SDK,并且使用自定义配置文件
    include 'BaiduBce.phar';
    // require 'YourConf.php';

    use BaiduBce\BceClientConfigOptions;
    use BaiduBce\Util\Time;
    use BaiduBce\Util\MimeTypes;
    use BaiduBce\Http\HttpHeaders;
    use BaiduBce\Services\Bos\BosClient;
    use BaiduBce\Services\Bos\BosOptions;
    use BaiduBce\Auth\SignOptions;
} catch (Exception $e) {
     echo $e->getMessage();
}

错误信息: Fatal error: Uncaught exception ‘PharException’ with message ‘__HALT_COMPILER(); must be declared in a phar’ in

问题很奇怪,本地环境没有问题,但是线上的百度云上传插件有问题。

折腾了一天,最终在老外的论坛上找到了解决方法:主要是因为PHP环境开启了cache类的功能功能模块;

目前发现的主要有两种:xcache、eaccelerator这两种模块导致的;

解决方法:

1、卸载xcache、eaccelerator或者禁用这两种模块;

卸载xcache:在php.ini 中注释xcahche相应的extension行;

禁用eaccelerator:eaccelerator.ini文件中修改eaccelerator.enable=“0”;

2、添加相应的过滤策略:如果使用eaccelerator,可以在eaccelerator的配置文件中添加策略,不缓存phar文件;

eaccelerator.filter = “!*.phar”

你可能感兴趣的:(PHP)