Почему aws.phar запускается один раз, а потом не загружается снова?

Я устанавливаю AWS SDK для php в моем приложении эластичного beanstalk, используя файл phar:

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

Как решить проблему?

5 ответов

Не использовать require_once, Это вызывает эту проблему. Вы должны использовать require или же include

Попробуйте отключить opcache

  • добавьте следующее в /etc/php5/apache2/php.ini opcache.enable=0
  • перезапустить Apache service apache2 restart

Это известная проблема, по крайней мере, в старых версиях aws.phar, и, похоже, существует общая проблема с phars и opc (ранее Zend Optimizer+)

Кажется, в некоторых версиях файла aws.phar произошла ошибка, которая вызывает такое поведение и предупреждающее сообщение.

Предупреждение: require(phar://aws.phar/aws-autoloader.php): не удалось открыть поток: ошибка phar: неверный URL или несуществующий phar "phar://aws.phar/aws-autoloader.php" в /var/app/current/src/utils/AWS-SDK/aws.phar в строке 3 Неустранимая ошибка: require(): сбой открытия требуется 'phar://aws.phar/aws-autoloader.php' (include_path='.:/ USR / доли / груша: / USR / доли / PHP ')

Я экспериментировал с той же проблемой, используя aws.phar с версией 2.7.17 AWS SDK для PHP

Решение, которое мне помогло, состояло в том, чтобы загрузить и извлечь версию AWS SDK для PHP на aws.zip и вместо этого потребовать файл aws-autoloader.php, как описано в документации по установке.

http://docs.aws.amazon.com/aws-sdk-php/guide/latest/installation.html

Некоторые люди сообщают об успехе при использовании версии AWS 2.4.10 (aws.phar), но это слишком устарело для моих целей.

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

Чтобы решить проблему, я установил SDK, используя композитор! Кстати, это рекомендуемая техника!

Убедитесь, что вы объявляете все использование пространства имен в верхней части файла, прежде чем выполнять команду "require". Если вы сначала включите файлы, это может испортить пространство имен. Это исправило проблему для меня.

Другие вопросы по тегам