2015-01-17 29 views
8

installo SDK AWS per PHP nella mia applicazione elastica pianta di fagioli utilizzando il file phar ,:perché aws.phar viene eseguito una volta e quindi non verrà caricato di nuovo?

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

quando faccio funzionare lo scritto per la prima volta, è successo! ma quando riprovo ho ricevuto questo errore:

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 

Come risolvere il problema?

risposta

0

per risolvere il problema Ho installato il sdk utilizzando il compositore! BTW è la tecnica consigliata!

1

Sembra esserci un errore su alcune versioni del file aws.phar che causa questo comportamento e un messaggio di avviso.

Avviso: require (phar: //aws.phar/aws-autoloader.php): impossibile aprire lo stream: errore phar: url non valido o phar inesistente "phar: //aws.phar/aws-autoloader .php "in /var/app/current/src/utils/AWS-SDK/aws.phar alla riga 3 Errore irreversibile: require(): apertura fallita richiesta 'phar: //aws.phar/aws-autoloader.php' (include_path = ':/usr/share/pera:/usr/share/php')

stavo sperimentando lo stesso problema usando aws.phar con la versione 2.7.17 del AWS SDK per PHP

La soluzione che ha funzionato per me era scaricare ed estrarre la versione aws.zip dell'SDK AWS per PHP e richiedere aws-autoloader.php invece come descritto nei documenti di installazione.

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

Alcuni rapporti successo quando si utilizza la versione 2.4.10 del AWS (aws.phar), ma che è troppo vecchio per i miei scopi.

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

+1

Ya, non sono sicuro di cosa causi questo, ma facendo il percorso di riferimento sdk lo ha risolto per noi. La parte strana è stata che l'abbiamo fatta funzionare per mesi, non ha nemmeno modificato il file .phar e poi si è rotto. – CasualT

5

Non utilizzare require_once. Questo sta causando quel problema. Si dovrebbe usare require o include

+0

buon punto. lo proverò ma come require_once effetti. non dovrebbe, giusto? – david

+0

No, 'require_once' chiama solo una volta il file: http://php.net/manual/es/function.require-once.php. quello che ho notato è che devi fare continue chiamate al bootstrap aws per farlo funzionare. –

0

provare a disattivare opcache

  • aggiungere quanto segue al /etc/php5/apache2/php.ini opcache.enable=0
  • Riavviare Apache service apache2 restart

Questo è un know issue almeno con le versioni precedenti di aws.phar e sembra esserci un general issue con phars a nd opc (ex Zend Optimizer +)

0

Assicurarsi di dichiarare l'utilizzo di tutti gli spazi dei nomi nella parte superiore del file prima di "richiedere". Se si includono i file per primi, può rovinare il namespaces. Questo ha risolto il problema per me.