Как включить расширение PHP openssl для установки Composer?


113

Я пытаюсь установить Laravel в настройке WAMP. Я получаю предупреждение о том, что не могу активировать openssl, что я уже сделал в WAMP.

Вот скриншот сообщения.

введите описание изображения здесь


1
Проверьте путь к PHP в переменной окружения %PATH%, возможно, Composer ищет PHP в другом месте вместо WampServer.
Рубенс Мариуццо 05

У меня такая же проблема. Я редактировал php.ini со значка wamp. Но я сделал это вручную, перезапустил свой сервер, и он работает.
themhz 04

Ответы:


121

Возможно, что WAMP и Composer используют разные установки PHP. Composer будет использовать PHP, установленный в PATHпеременной окружения.

Если вы хотите включить расширение openssl для установки Composer , сначала вам нужно проверить местоположение установки PHP.

  1. Откройте командную строку, введите: echo %PATH%затем проверьте расположение установки PHP.
  2. Перейти к этому месту и отредактировать файл с именем: php.ini.
  3. Раскомментируйте строку extension=php_openssl.dll, удалив точку с запятой в начале.

Теперь вы можете установить Composer.


2
Так случилось, что у меня нет этого расширения в моей установке XAMPP. Я только что добавил (extension = php_openssl.dll) в php.ini, и он работает, загружая зависимости laravel.
Адриан П.

8
когда я печатаю, echo %PATH%я получаю: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\Sysem32\WindowsPowerShell\v1.0\;C:\Program files\Microsoft\Web Platform Installer\;C:\Program Files\MySQL\MySQL Server 5.5\bin.. ни в одном из этих каталогов не установлен php .. что мне теперь делать?
abbood

19
wamp использует этот php.ini: c: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini, но композитор использует PHP из CLI и, следовательно, читает этот файл: c: \ wamp \ bin \ php \ php5.4.12 \ php.ini (так что вам нужно включить там openssl)
Энрике

2
Я использую xampp, Composer выдает ту же ошибку отсутствия открытого ssl даже после удаления ';' расширения openssl в php.ini.
Шашикумар Мисал

30
Я также должен был раскомментировать строку extension_dir = "ext"в php.ini, но я использую простой PHP установки вместо WAMP.
Дэвид Харкнесс

62

Я решил свою проблему другим способом. Проблема в том, что графический интерфейс wamp вводил в заблуждение: он утверждал, что я php_opensslвключил ... и если я щелкнул php.iniпо тому же графическому интерфейсу ... он действительно показал, что он extension=php_openssl.dllбыл раскомментирован ..

Я не уверен, что я использую ту же версию установщика композитора OP, но на самом деле он действительно просит вас в начале указать, php.exeчто вы хотите применить композитор (что в основном гарантирует, что никто не пытается применить композитор к неправильный исполняемый файл php, как то, что произошло с OP) ..

Я решил эту проблему, войдя в установку php в пакете wamp: C:\wamp\bin\php\php5.4.12и заглянув php.inтуда ... когда я открыл его, я был шокирован тем, что строка extension=php_openssl.dllдействительно была прокомментирована! Я раскомментировал его, и он работал нормально.

введите описание изображения здесь


Спасибо, взглянув на этот ответ, я понял, что wamp использует 5.5.12, но я выбрал каталог 5.4 для php.exe
Афнан Башир,

По какому пути находятся файлы libeay32.dllили liblibcrypto-*.dllнаходятся? php.net/manual/de/openssl.installation.php
Бернхард Доблер,

53

У меня была такая же проблема, и вот решение, которое я нашел, на вашем php.ini вам нужно внести некоторые изменения:

  1. extension_dir = "ext"
  2. extension = php_openssl.dll

Все здесь говорят об активном расширении openssl, но в окнах вам также нужно активировать каталог расширений.


3
Мужчины, вы единственный, кто упомянул extension_dir, вы молодцы !
Яннис Кристофакис

Это сработало для меня. Я скачал PHP прямо, как в этой статье .
ограблен

26

Для сервера WAMP комментарий, сделанный «Энрике», решил мою проблему.

wamp использует этот php.ini :

c:\wamp\bin\apache\Apache2.4.4\bin\php.ini

Но композитор использует PHP из CLI и, следовательно, читает этот файл:

c:\wamp\bin\php\php5.4.12\php.ini (so you need to enable openssl there)

Для композитора вам нужно будет включить расширение в

c:\wamp\bin\php\php5.4.12\php.ini

Изменить:

;extension=php_openssl.dll 

к

extension=php_openssl.dll

Для MAMP мне пришлось скопировать файл php.ini из C: \ MAMP \ conf \ phpx.xx в C: \ MAMP \ bin \ php \ phpx.xx (\ conf \ .... в \ bin \ .. .)
Майк

15

Если вы делаете это в Windows без одного из стеков WAMP, вот как это сделать

  1. Загрузите установку PHP для Windows . Как правило, вам нужна небезопасная установка. Вы можете использовать 32-битные или 64-битные сборки
  2. Распакуйте куда-нибудь zip-файл. Я бы предложил C:\php. Установщик Composer нашел его там без каких-либо дополнительных запросов.
  3. Последние версии PHP для Windows не имеют php.iniпо умолчанию . Вместо этого вы увидите два файла, как указано ниже. Переименуйте один в php.iniили скопируйте в php.ini.
    • php.ini-разработка
    • php.ini-производство
  4. Откройте php.iniфайл и удалите точку с запятой из этой строки (вы можете также раскомментировать другие вещи, но эта строка - единственная, необходимая для Composer)

    ;extension=php_openssl.dll

Это должно быть все, что вам нужно сделать. Установщик Composer должен делать все, что вам нужно, отсюда.


2
Это ЕДИНСТВЕННОЕ место в сети с правильным решением (не для WAMP). Спасибо!
adamdehaven

11

Вам нужно включить extension = php_openssl.dll в обоих файлах (php и apache). мой путь к файлам ПК:

  1. C: \ wamp \ bin \ php \ php5.3.13 \ php.ini
  2. C: \ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini

8

Это старый вопрос, но у меня была такая же проблема (с PHP7), и решение, в конце концов, было довольно простым. Однако раскомментировать строку в php.iniсоответствии с другими ответами было недостаточно. Мне нужно было изменить это с:

;extension=php_openssl.dll

кому:

extension=ext/php_openssl.dll

Обратите внимание на extпрефикс. DLL уже существует, но находится во вложенной папке. После изменения конфигурации установщик композитора остался доволен.


7

вам нужно включить расширение openssl в

C:\wamp\bin\php\php5.4.12\php.ini 

это файл конфигурации php, который имеет его тип, имеет «настройки конфигурации» с иконкой в ​​виде блокнота драйвера.

  1. откройте его блокнотом или любым редактором,
  2. поиск openssl "ваш ctrl + F" подойдет.
  3. перед расширением openssl стоит точка с запятой

    ;extension=php_openssl.dll

    удалите точку с запятой, и у вас будет

    extension=php_openssl.dll
  4. сохраните файл и перезапустите сервер WAMP, после чего все готово. повторно установите приложение, которое должно работать.

6

Есть два php.iniфайла, один для разработки и один для производства. Оставьте их, есть еще один php.iniфайл для настроек конфигурации чуть выше них с шестеренкой, такой как значок редактирования.


В качестве альтернативы у меня не было дефолта. Просто скопируйте / вставьте prod / dev one и переименуйте его в php.ini, а затем внесите изменения, предложенные здесь другими.
Brynn Bateman

3

После редактирования "правильных" файлов (всех php.ini). у меня все еще была проблема. Мое решение было:

  1. Добавление системной переменной: OPENSSL_CONF

    значение OPENSSL_CONF должно быть файлом openssl.cnf вашей текущей версии php.

для меня это было:

  • C: \ wamp \ bin \ php \ php5.6.12 \ extras \ ssl \ openssl.cnf

-> Перезагрузите WAMP -> теперь должно работать

Источник: http://php.net/manual/en/openssl.installation.php


2

Я столкнулся с той же проблемой, но когда я искал php.ini и php.exe, я обнаружил php.exe в C: \ UwAmp \ bin \ php \ php-5.4.15, когда php.ini в C: \ UwAmp \ bin \ apache. Я просто копирую php.ini в C: \ UwAmp \ bin \ php \ php-5.4.15 и раскомментирую расширение строки = php_openssl.dll, и это исправлено.


2

Я использую сервер WAMP. Собственно его файлы показали, что openssl открыт. Но вручную зашел в папку и отредактировал php.ini. Затем я обнаружил, что он не открывал openssl. Я раскомментировал его, и он работал после перезапуска WAMP.


2

C: \ wamp \ bin \ php \ php5.3.13

Перейдите к строке, которая гласит:

;extension=php_openssl.dll

и удалите точку с запятой перед строкой. Перезапустите службы сервера WAMP (щелкните в области значков> «Перезапустить все службы»


1

Если вы все еще не можете решить свою проблему, взгляните на это. Это может быть решение, которое вы ищете

В папке C: \ wamp \ bin \ php \ php xyz есть несколько файлов php.ini. Вы можете найти файлы производства, разработки и некоторые другие файлы php.ini. Нет смысла редактировать файлы производства и разработки. Найдите файл, который точно такой же, как на изображении ниже. (Вы можете найти его. Просто введите php.ini в строке поиска и выполните поиск). Откройте файл и удалите; из extension = php_openssl.dll. Сохраните файл и закройте его. Перезапустите все службы на сервере Wampp. Переустановите свой композитор.

Вот и все.

введите описание изображения здесь


1

Wamp работает с другим файлом php.ini, который находится в C: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini. Поэтому вам нужно вручную найти правильный файл, то есть в C: \ wamp \ bin \ php \ php5.4.12 \ php.ini. Раскомментируйте строку extension = php_openssl.dll и попробуйте снова установить Composer.


1

Для тех, у кого такая же проблема, как и у меня. После выполнения всех вышеперечисленных решений у меня все еще не сработало. Я узнал, что uWamp создавал файл PHP.INI в каталоге bin / apache. Поэтому мне пришлось скопировать файл PHP.INI в каталог установки php, то есть каталог bin / php / phpXXXX. Это также должно быть то место, где находится php.exe, который вы выбрали в настройке композитора.

Надеюсь это поможет.


1

Если вы скомпилировали из исходников, то добавление extension=php_openssl.dllв файл php.ini может не работать .

Чтобы устранить эту проблему, откройте командную строку и введите php -i. Прокрутите до первой строки, она сообщит вам самую последнюю ошибку, касающуюся вашего файла php.ini.

Чтобы решить эту проблему, найдите php_openssl.dllфайл, для меня он находился в том же каталоге, что и вывод компиляции: C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS поэтому просто добавьте каталог, в котором находится расширение, в php.ini:

extension_dir = "C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS"

Надеюсь ошибка исчезнет


0

Если вы используете xampp, вернитесь туда, где вы выбираете, какой php командной строки вы хотите использовать в начале вашей установки, и выберите путь, в который включена ваша папка xampp. После этого, если ваш установщик сообщает, что у вас есть дубликат 'extension = = php_openssl.dll 'закомментируйте один файл ssl в вашем php ini с помощью'; ', и ваша установка должна пройти гладко.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.