2015-01-17 19 views
8

tôi cài đặt sdk AWS cho php trong ứng dụng của cây đậu đàn hồi của tôi sử dụng tập tin Phar ,:tại sao aws.phar chạy một lần sau đó sẽ không tải lại?

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

khi tôi chạy kịch bản lần đầu tiên, nó thành công! nhưng khi tôi thử lại, tôi nhận được lỗi này:

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 

Cách giải quyết sự cố?

Trả lời

0

để giải quyết sự cố Tôi đã cài đặt sdk bằng cách sử dụng nhà soạn nhạc! BTW đó là kỹ thuật được khuyến nghị!

1

Dường như có lỗi trên một số phiên bản của tệp aws.phar gây ra hành vi và thông báo cảnh báo này.

Cảnh báo: yêu cầu (phar: //aws.phar/aws-autoloader.php): không mở được luồng: lỗi phar: url không hợp lệ hoặc phar không tồn tại "phar: //aws.phar/aws-autoloader .php "trong /var/app/current/src/utils/AWS-SDK/aws.phar trên dòng 3 Lỗi nghiêm trọng: require(): Không mở được yêu cầu 'phar: //aws.phar/aws-autoloader.php' (include_path = '/ usr/share/lê:/usr/share/php')

tôi đã thử nghiệm cùng một vấn đề sử dụng aws.phar với phiên bản 2.7.17 của AWS SDK cho PHP

Giải pháp làm việc cho tôi là tải xuống và giải nén phiên bản aws.zip của SDK AWS cho PHP và yêu cầu aws-autoloader.php thay vì được mô tả trong tài liệu cài đặt.

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

Một số người báo cáo thành công khi sử dụng phiên bản 2.4.10 của AWS (aws.phar) nhưng đó là quá già cho các mục đích của tôi.

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

+1

Ya, tôi không chắc chắn nguyên nhân gây ra điều này nhưng làm tuyến đường tham chiếu sdk đã sửa nó cho chúng tôi. Phần kỳ lạ là chúng tôi đã có nó chạy tốt trong nhiều tháng, thậm chí không thay đổi tập tin .phar, và sau đó nó đã phá vỡ. – CasualT

5

Không sử dụng require_once. Điều đó gây ra vấn đề đó. Bạn nên sử dụng require hoặc include

+0

điểm tốt. tôi sẽ thử cái này nhưng hiệu ứng require_once như thế nào. nó không nên, phải không? – david

+0

Không, 'require_once' chỉ gọi một lần tệp: http://php.net/manual/es/function.require-once.php. những gì tôi đã nhận thấy là bạn phải thực hiện các cuộc gọi liên tục để khởi động aws để làm cho nó hoạt động. –

0

Hãy thử tắt opcache

  • thêm dòng sau vào /etc/php5/apache2/php.ini opcache.enable=0
  • restart apache service apache2 restart

này ít nhất là know issue với các phiên bản cũ hơn của aws.phar và có vẻ như là một general issue với các ký tự một nd opc (trước đây là Zend Optimizer +)

0

Đảm bảo bạn khai báo tất cả việc sử dụng không gian tên ở đầu tệp trước khi bạn "yêu cầu". Nếu bạn bao gồm các tập tin đầu tiên, nó có thể mess lên các không gian tên. Điều này đã khắc phục vấn đề cho tôi.

Các vấn đề liên quan