2015-01-17 177 views
8

我使用藥業文件安裝AWS SDK for PHP的實際我的豆莖彈性應用,:爲什麼aws.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 

如何解決這個問題?

回答

0

解決問題我安裝了使用作曲家的sdk!順便說一句,這是推薦的技術!

1

在導致此行爲和警告消息的aws.phar文件的某些版本上似乎存在錯誤。

警告:require(phar://aws.phar/aws-autoloader.php):未能打開流:phar錯誤:無效url或不存在的phar「phar://aws.phar/aws-autoloader .php「在第3行的/var/app/current/src/utils/AWS-SDK/aws.phar致命錯誤:require():無法打開所需的'phar://aws.phar/aws-autoloader.php' (include_path中= ':在/ usr /共享/梨:在/ usr /共享/ PHP的')

我嘗試使用aws.phar與AWS SDK的2.7.17版本的PHP

同樣的問題我的解決方案是下載並解壓縮用於PHP的AWS SDK的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/

+1

雅,我不知道是什麼原因造成這個,但做sdk參考路線爲我們修復了它。奇怪的部分是,我們已經運行好幾個月,甚至沒有改變.phar文件,然後它打破了。 – CasualT

5

不要使用require_once。這是造成這個問題。您應該使用requireinclude

+0

好點。我會試試這個。但如何require_once效果。它不應該,對吧? – david

+0

不,「require_once」只會調用一次文件:http://php.net/manual/es/function.require-once.php。 我注意到,你必須連續調用aws bootstrap才能使其工作。 –

0

嘗試關閉opcache

  • 添加以下/etc/php5/apache2/php.ini opcache.enable=0
  • 重啓Apache service apache2 restart

這是一個know issue至少與舊版本的aws.phar並且似乎有一個general issue與phars a nd opc(以前稱爲Zend Optimizer +)

0

確保在執行「require」之前,在文件頂部聲明所有命名空間的用法。如果您首先包含文件,它可能會弄亂命名空間。這解決了我的問題。

相關問題