【问题标题】:why aws.phar runs once then won't load again?为什么 aws.phar 运行一次然后不会再次加载?
【发布时间】:2015-03-16 01:23:23
【问题描述】:

我使用 phar 文件在我的弹性 beanstalk 应用程序中安装 aws sdk for php,:

require_once __DIR__ . '/../AWS-SDK/aws.phar';

当我第一次运行脚本时,它成功了!但是当我再次尝试时,我得到了这个错误:

Warning: require(phar://aws.phar/aws-autoloader.php): failed to open stream: phar error: invalid url or non-existent phar "phar://aws.phar/aws-autoloader.php" in /var/app/current/src/utils/AWS-SDK/aws.phar on line 3 Fatal error: require(): Failed opening required 'phar://aws.phar/aws-autoloader.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/app/current/src/utils/AWS-SDK/aws.phar on line 3

如何解决问题?

【问题讨论】:

    标签: php amazon-web-services amazon-elastic-beanstalk phar aws-php-sdk


    【解决方案1】:

    为了解决我使用 composer 安装 sdk 的问题!顺便说一句,这是推荐的技术!

    【讨论】:

      【解决方案2】:

      某些版本的 aws.phar 文件似乎存在错误,导致此行为和警告消息。

      警告:需要(phar://aws.phar/aws-autoloader.php):无法打开流:phar 错误:url 无效或 phar 不存在“phar://aws.phar/aws-autoloader.第 3 行 /var/app/current/src/utils/AWS-SDK/aws.phar 中的 php” 致命错误:require(): 无法打开所需的 'phar://aws.phar/aws-autoloader.php' ( include_path='.:/usr/share/pear:/usr/share/php')

      我在 AWS SDK for PHP 2.7.17 版本中使用 aws.phar 试验同样的问题

      对我有用的解决方案是下载并提取适用于 PHP 的 AWS 开发工具包的 aws.zip 版本,并需要 aws-autoloader.php,如安装文档中所述。

      http://docs.aws.amazon.com/aws-sdk-php/guide/latest/installation.html#installing-via-zip

      有些人在使用 2.4.10 版本的 AWS (aws.phar) 时报告成功,但这对我来说太旧了。

      https://pyd.io/f/topic/pydio-6-0-s3-plugin-phar-error/

      【讨论】:

      • 是的,我不确定是什么原因造成的,但是做 sdk 参考路线为我们修复了它。奇怪的是,我们让它运行了好几个月,甚至没有更改 .phar 文件,然后它就坏了。
      【解决方案3】:

      不要使用require_once。这导致了这个问题。你应该使用requireinclude

      【讨论】:

      • 好点。我会试试这个。但是 require_once 效果如何。不应该吧?
      • 不,require_once 只调用一次文件:php.net/manual/es/function.require-once.php。我注意到的是,您必须不断调用 aws 引导程序才能使其正常工作。
      【解决方案4】:

      尝试关闭 opcache

      • 将以下内容添加到/etc/php5/apache2/php.ini opcache.enable=0
      • 重启apacheservice apache2 restart

      这是一个 know issue 至少在旧版本的 aws.phar 中,似乎有一个 general issue 带有 phars 和 opc(以前的 Zend Optimizer+)

      【讨论】:

      • 当我将我的 phar 文件移动到另一个位置时,我出现了这个问题。这样做后我不得不重新启动 Apache,因为 Apache 缓存了它的位置。只需运行 apache restart 命令即可解决我的问题。
      【解决方案5】:

      确保在“要求”之前在文件顶部声明所有命名空间的使用。如果您首先包含文件,则可能会弄乱命名空间。这为我解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-03
        • 2021-12-03
        • 1970-01-01
        • 2016-07-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多