Magento 2: Điều gì khiến cho Lỗi không thể kích hoạt Lỗi tiền điện tử?


7

Tôi đang cố gắng cài đặt Magento 2.1 thông qua gói meta của trình soạn thảo bằng lệnh sau

composer create-project --repository=https://repo.magento.com/ magento/project-community-edition

Tuy nhiên, nhà soạn nhạc không cập nhật packages.jsontừ repo.magento.comvà báo cáo

Các " https://repo.magento.com/packages.json " tập tin không thể được tải về: Không thể cho phép crypto

Có ai biết nguyên nhân gây ra lỗi "Không thể kích hoạt tiền điện tử" này không và làm thế nào để ai đó có thể sửa nó?


trong khi truy xuất dữ liệu repo.magento.com, nó cần xác thực, bạn nên có auth.json trong thư mục gốc sẽ chứa tên người dùng và mật khẩu của kho lưu trữ magento{ "http-basic": { "repo.magento.com": { "username": "a98186c7f7777dbb05d959bdb91b9729", "password": "344ce14c479f1c8eae77edb58b4ec66f" } } }
Aman Alam

@amanAlam Bạn có chắc không? Bởi vì tôi đã có một auth.json trong một thời gian và nó hoạt động tốt cho đến ngày hôm nay. Ngoài ra, lỗi là tham chiếu một vấn đề về tiền điện tử, không phải là vấn đề xác thực. Điều gì làm cho bạn chắc chắn đó là một lỗi auth?
Alan Storm

Không chắc lắm lắm vì trước đây tôi có một số lỗi xác thực trong khi cài đặt và nó đã giải quyết được vấn đề nên tôi nghĩ nó có thể giúp bạn.
Aman Alam

Kiểm tra liên kết này có thể giúp bạn github.com/composer/composer/issues/4825
Aman Alam

@AlanStorm trong ví dụ mã của bạn, --repository-urlkhông viết đúng chính tả. Tôi không thể tự chỉnh sửa, vì SE muốn có tối thiểu 6 ký tự trong một lần chỉnh sửa và tôi không muốn làm hỏng câu hỏi của bạn.
ryanF

Câu trả lời:


6

Có vẻ như Magento đã siết chặt HTTPS của họ trên repo.magento.commáy chủ.

Các cài đặt này đủ chặt để các ứng dụng hỗ trợ HTTPS nhưng sử dụng phiên bản OpenSSL cũ hơn có thể bị từ chối kết nối.

Có nghĩa là, nếu phiên bản PHP bạn đang sử dụng để chạy composer.pharđược liên kết với phiên bản PHP cũ hơn, bạn sẽ không thể kích hoạt lỗi tiền điện tử. Bạn có thể kiểm tra phiên bản PHP của mình với đoạn mã sau.

error_reporting(E_ALL);
$context = stream_context_create();
$contents = file_get_contents('https://repo.magento.com/packages.json', false, $context);

Lý do tôi gặp lỗi này là / là phiên bản đóng gói của PHP mà tôi đã sử dụng (tùy thuộc vào cách bạn đếm) trong gần 13 năm liên kết với phiên bản SSL cũ hơn. Các nhà bảo trì gói đã phát hành một bản dựng mới dường như để giải quyết những vấn đề này.

Nếu bạn đang sử dụng một phiên bản PHP được đóng gói khác nhau, bạn sẽ cần phải gây áp lực cho các nhà bảo trì gói để phát hành một bản dựng mới khắc phục điều này hoặc gây áp lực cho Magento làm điều tương tự.

Nếu bạn đang tự xây dựng một phiên bản PHP (bằng tay, thông qua brew, v.v.) thì hãy đảm bảo rằng bạn đang sử dụng phiên bản OpenSSL hiện đại với hỗ trợ TLS hiện đại (tôi có thể đã sử dụng sai những từ đó, không phải là chuyên gia HTTPS / SSL bằng bất kỳ đoạn đường nào)


4

Tôi đã giải quyết bằng cách cập nhật gói liip OS X

http://php-osx.liip.ch

bạn chỉ cần chạy lệnh một dòng trên trang đó

nguồn: http://devdocs.magento.com/guides/v2.0/release-notes/tech_bull_tls-repo.html

EDIT: Sau này, hãy kiểm tra xem bạn có đang sử dụng phiên bản cập nhật với php -vwhich php

Cảm ơn bạn @AlanStorm!


2
Cập nhật gói OS X liip làm việc cho tôi. Nếu không biết thêm, nếu bạn vẫn thấy lỗi về tiền điện tử, tôi đoán bạn sẽ không thực hiện phiên bản liip mới nhất.
Alan Storm

OMG đó là NHANH CHÓNG! : D Yep bạn đã đúng, tôi đã không sử dụng phiên bản mới nhất. Tôi đã đặt một bí danh cho php5.6 trong bash_profile của mình và nó đã hoạt động! Cảm ơn bạn một lần nữa Alan!
mrzhero

-1

Tôi không chắc điều gì sẽ gây ra lỗi đó, ngoài điều gì đó có thể liên quan đến Trình soạn thảo thiết lập kết nối bảo mật qua https? Nhưng đó chỉ là dự đoán.

Tôi chỉ cần chạy lệnh ngay bây giờ và nó đã thành công.

Có thể thử lại lần nữa? Tôi xin lỗi vì đã không cung cấp cái nhìn sâu sắc hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.