2015-01-17 23 views
8

zainstalować AWS SDK dla PHP w moim elastycznego stosowania beanstalk przy użyciu pliku Phar ,:dlaczego aws.phar działa raz, a następnie nie ładuje się ponownie?

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

kiedy uruchomić skrypt po raz pierwszy, to uda! ale kiedy próbuję ponownie, mam ten błąd:

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 

Jak rozwiązać problem?

Odpowiedz

0

do rozwiązania problemu Zainstalowałem sdk za pomocą kompozytor! BTW to zalecana technika!

1

Wygląda na błąd w niektórych wersjach pliku aws.phar, który powoduje to zachowanie i komunikat ostrzegawczy.

Ostrzeżenie: require (phar: //aws.phar/aws-autoloader.php): nie można otworzyć strumienia: błąd phar: niepoprawny adres URL lub nieistniejący phar "phar: //aws.phar/aws-autoloader .php "in /var/app/current/src/utils/AWS-SDK/aws.phar w linii 3 Błąd krytyczny: require(): Nieudane otwarcie wymagało" phar: //aws.phar/aws-autoloader.php " (include_path = ':/usr/share/pear:/usr/share/php')

I eksperymentował ten sam problem przy użyciu aws.phar wersji 2.7.17 z AWS SDK dla PHP

Rozwiązaniem, które mi pomogło, było pobranie i wypakowanie wersji AWS SDK z aws.zip dla PHP i wymaganie aws-autoloader.php, jak opisano w dokumentacji instalacyjnej.

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

Niektórzy ludzie donosi sukces podczas korzystania z wersji AWS (aws.phar) 2.4.10 ale że jest zbyt stary dla moich celów.

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

+1

Ya, nie jestem pewien, co powoduje to, ale wykonanie trasy odniesienia sdk naprawiono dla nas. Dziwne było to, że działaliśmy dobrze przez wiele miesięcy, nawet nie zmieniliśmy pliku .phar, a potem się zepsuł. – CasualT

5

Nie używaj require_once. To powoduje ten problem. Należy użyć require lub include

+0

dobry punkt. spróbuję tego. ale jak efekt require_once. to nie powinno, prawda? – david

+0

Nie, 'require_once' wywołuje tylko raz plik: http://php.net/manual/es/function.require-once.php. Zauważyłem, że musisz nieustannie powoływać się na bootstrap aws, aby to zadziałało. –

0

Spróbuj wyłączyć opcache

  • dodać następujące /etc/php5/apache2/php.ini opcache.enable=0
  • restart apache service apache2 restart

ten jest know issue co najmniej ze starszymi wersjami aws.phar i wydaje się, że jest general issue z farsami nd opc (dawniej Zend Optimizer +)

0

Upewnij się, że zadeklarowano użycie wszystkich obszarów nazw u góry pliku, zanim wykonasz "wymaganie". Jeśli najpierw umieścisz pliki, może to zepsuć obszar nazw. To naprawiło problem dla mnie.