Включение SSL для установки композитора

Я знаю, что этот вопрос встречается повсюду на этом сайте, но все решения не сработали со мной.

Я получаю эту ошибку при запуске установки композитора:

In Factory.php line 650:

  The openssl extension is required for SSL/TLS protection 
  but is not available. If you can not enable the openssl
  extension, you can disable this error, at your own risk, 
  by setting the 'disable-tls' option to true.

Я не знаю, откуда он получает Factory.php, но его нет в каталоге моего проекта.

Я сделал все предложенные решения. Я переименовал файл разработки php.ini моего PHP в php.ini и раскомментировал следующее:

extension=openssl

И так как я на окнах, это тоже:

extension_dir = "ext"

Я также включил SSL через меню Ларагон > Apache > SSL > Включить

Мой файл php.ini находится в моей папке laragon следующим образом:

C:\laragon\bin\php\PHP7\php.ini

Затем я кое-что заметил: когда я щелкаю правой кнопкой мыши по Ларагону для вызова меню и перехожу к php.ini, он говорит, что файл php.ini не найден (хотя он находится в нужном месте). Как видно на прикрепленной фотографии.

Когда все это не сработало, я увидел другое предложенное решение, в котором говорилось также о добавлении файла php.ini в каталог Apache в Ларагоне, например:

C:\laragon\bin\apache\httpd-2.4.54-win64-VS16\bin\php.ini

Обратите внимание, что я перезагружаю Apache каждый раз.

И я все еще получаю ошибку.

В чем может быть проблема? Я не хочу отключать tls и понятия не имею, что такое файл Factory.php.

Любая помощь приветствуется. Спасибо.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
130
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я думаю, что в этом случае вам не хватает сертификата для вашего экземпляра PHP.

Вы можете загрузить этот файл сертификата непосредственно с: сайта CURL

После этого вам нужно найти эти записи в файле php.ini. В частности, [curl] и [openssl], которые идут сразу после [curl].

Что вам нужно сделать, так это сохранить файл cacert.pem в месте, предпочтительно в каталоге в корневом каталоге вашего веб-сервера или в том месте, где вы предпочитаете, и использовать абсолютный каталог для конфигурации ниже.

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "absolute location of where you saved the cacert.pem file"

[openssl]
; The location of a Certificate Authority (CA) file on the local filesystem
; to use when verifying the identity of SSL/TLS peers. Most users should
; not specify a value for this directive as PHP will attempt to use the
; OS-managed cert stores in its absence. If specified, this value may still
; be overridden on a per-stream basis via the "cafile" SSL stream context
; option.
openssl.cafile= "absolute location of where you saved the cacert.pem file"

Сохраните файл php.ini, перезапустите сервер и повторите попытку. Это должно решить вашу проблему.

ОБНОВЛЯТЬ

Если вы проверите свою информацию о PHP phpinfo(), у вас должен быть раздел, похожий на этот:

Если вы этого не сделаете, вы, вероятно, не включаете openssl.

Так что это определенно исправило одну вещь: всплывающее окно с надписью «Файл php.ini не найден» больше не появляется, так что спасибо за это. Тем не менее, первоначальная ошибка в терминале о необходимости использования openssl все еще возникает.

nouf alsalem 11.01.2023 18:28

Если вы отметите phpinfo(), вы получите раздел openssl?

Mihail Minkov 11.01.2023 20:16

Я добавил пример того, как должен выглядеть ваш phpinfo(), если у вас включен openssl.

Mihail Minkov 11.01.2023 20:18

Я разобрался со своей проблемой, спасибо :) Если интересно, добавил в обновлении в вопросе.

nouf alsalem 11.01.2023 21:47

В качестве дополнительной информации композитор обычно использует определенную версию php, которая настраивается при установке с использованием переменной среды, используемой для php.exe. Так что вы, вероятно, запускали композитор с другой версией php.

Mihail Minkov 12.01.2023 01:48

Да, но я не ставил другую версию php, кроме 7.4, в composer в первый раз. Это был новый ноутбук, и php 7.4 был моей первой и единственной установкой php, и той же, которую я использовал для установки композитора в первый раз. Затем я установил Laragon, который поставлялся с php8, и он использовал 8 по умолчанию, я переключил laragon на 7, затем композитор запутался, пока я не удалил его и не переустановил заново. Кстати, я бы проголосовал за вас, но мне нужно 15 репутации, ха-ха

nouf alsalem 12.01.2023 19:22

Не беспокойся! Что касается композитора, да, когда вы устанавливаете новую версию php, вы должны проверить, какую версию он использует. По крайней мере, в Windows самый простой вариант — переустановить composer.

Mihail Minkov 12.01.2023 21:20

Я нашел решение. Кому еще нужно:

Это все, что я сделал выше, а затем в качестве начального шага то, что сказал другой ответ, который решает всплывающее окно «файл не найден». Но чтобы решить остальное, я понял, что моя проблема заключалась в том, что, прежде чем я сделал все вышеперечисленное в php.ini, я переключил версию php, которую использовал Ларагон (v8), на v7.4 (ту, которую я пытался получить работать.) Это почему-то смущает Composer. Поэтому мне пришлось удалить сам композитор с моего компьютера и переустановить, но активировать developer option, проверив его в мастере установки на этот раз, так как я не сделал это в первый раз. После этого это сработало.

Другие вопросы по теме