Jak włączyć rozszerzenie PHP openssl, aby zainstalować Composer?

113

Próbuję zainstalować Laravel w konfiguracji WAMP. Otrzymuję ostrzeżenie, że nie włączam openssl, co już zrobiłem w WAMP.

Oto zrzut ekranu wiadomości.

wprowadź opis obrazu tutaj

FirmView
źródło
1
Sprawdź ścieżkę PHP w zmiennej środowiskowej %PATH%, być może Composer szuka PHP w innej lokalizacji zamiast WampServer.
Rubens Mariuzzo,
Miałem ten sam problem. Edytowałem plik php.ini z ikony wampa. Ale zrobiłem to ręcznie, zrestartowałem serwer i działa.
themhz

Odpowiedzi:

121

Możliwe, że WAMP i Composer używają różnych instalacji PHP. Composer użyje PHP ustawionego w PATHzmiennej środowiskowej.

Jeśli chcesz włączyć rozszerzenie openssl do instalacji Composera , najpierw musisz sprawdzić lokalizację instalacji PHP.

  1. Otwórz wiersz polecenia, wpisz: echo %PATH%a następnie sprawdź lokalizację instalacji PHP.
  2. Idź do tej lokalizacji i edytować plik o nazwie: php.ini.
  3. Odkomentuj wiersz extension=php_openssl.dll, usuwając średnik na początku.

Teraz możesz zainstalować Composer.

Rubens Mariuzzo
źródło
2
Zdarza się, że nie mam tego rozszerzenia na mojej instalacji XAMPP. Właśnie dodałem (rozszerzenie = php_openssl.dll) na php.ini i działa pobieranie zależności laravel.
Adrian P.
8
kiedy echo %PATH%piszę, otrzymuję: 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.. nie ma żadnego php zainstalowanego w żadnym z tych katalogów .. co mam teraz zrobić?
opactwo
19
wamp używa tego php.ini: c: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini, ale kompozytor używa PHP z CLI i dlatego czyta ten plik: c: \ wamp \ bin \ php \ php5.4.12 \ php.ini (więc musisz tam włączyć openssl)
Enrique
2
Używam Xampp, Composer podaje ten sam błąd braku otwartego ssl, nawet po usunięciu ';' rozszerzenia openssl w php.ini.
Shashikumar Misal
30
Miałem też odkomentować linię extension_dir = "ext"w php.ini, ale używam zwykły instalację PHP zamiast WAMP.
David Harkness,
62

Problem rozwiązałem w inny sposób. Problem polega na tym, że GUI wampa wprowadzało w błąd: twierdził, że php_opensslwłączyłem ... i jeśli kliknąłem php.inina tym samym GUI ... faktycznie pokazało, że nie extension=php_openssl.dllma komentarzy ...

Nie jestem pewien, czy używam tej samej wersji instalatora kompozytora OP, ale tak naprawdę na początku prosi Cię o określenie, do php.exektórego chcesz zastosować kompozytor (co w zasadzie zapewnia, że ​​nikt nie próbuje zastosować kompozytora do niewłaściwy plik wykonywalny php, jak to się stało z OP).

Sposób, w jaki to rozwiązałem, polegał na tym, że sam przeszedłem do instalacji php w pakiecie wamp: C:\wamp\bin\php\php5.4.12i spojrzałem php.intam ... kiedy go otworzyłem, byłem zszokowany, że wiersz extension=php_openssl.dllzostał faktycznie skomentowany! Odkomentowałem to i działało dobrze.

wprowadź opis obrazu tutaj

abbood
źródło
Dzięki po spojrzeniu na tę odpowiedź doszedłem do wniosku, że wamp używa wersji 5.5.12, ale wybrałem katalog 5.4 dla php.exe
Afnan Bashir
W jakiej ścieżce znajdują się libeay32.dlllub pliki liblibcrypto-*.dll? php.net/manual/de/openssl.installation.php
Bernhard Döbler
53

Miałem ten sam problem i tutaj rozwiązanie, które znalazłem, na twoim php.ini musisz zrobić kilka zmian:

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

Każdy tutaj mówi o aktywnym rozszerzeniu openssl, ale w oknach musisz też aktywować dir rozszerzenia.

Francisco Cabral
źródło
3
Mężczyźni, jesteście jedynymi, którzy wspomnieli extension_dir, jesteście wspaniali!
giannis christofakis
To zadziałało dla mnie. Pobrałem PHP bezpośrednio, tak jak w tym turtorialu .
okradł
26

W przypadku serwera WAMP, komentarz "Enrique" rozwiązał mój problem.

wamp używa tego php.ini :

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

Ale kompozytor używa PHP z CLI i dlatego czyta ten plik:

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

W przypadku kompozytora będziesz musiał włączyć rozszerzenie w

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

Zmiana:

;extension=php_openssl.dll 

do

extension=php_openssl.dll
user3887814
źródło
W przypadku MAMP musiałem skopiować plik php.ini z C: \ MAMP \ conf \ phpx.xx do C: \ MAMP \ bin \ php \ phpx.xx (\ conf \ .... do \ bin \ .. .)
Mike
15

Jeśli robisz to w systemie Windows bez jednego ze stosów WAMP, oto jak to zrobić

  1. Pobierz instalację PHP dla Windows . Generalnie będziesz potrzebować bezpiecznej instalacji bez wątków. Możesz używać kompilacji 32-bitowych lub 64-bitowych
  2. Rozpakuj gdzieś plik zip. Proponuję C:\php. Instalator Composera znalazł go tam bez dodatkowego monitu
  3. Najnowsze wersje PHP dla Windows nie są php.inidomyślnie dostarczane z rozszerzeniem . Zamiast tego zobaczysz dwa pliki, jak wspomniano poniżej. Zmień nazwę na php.inilub skopiuj ją do php.ini.
    • rozwój php.ini
    • php.ini-produkcja
  4. Otwórz php.iniplik i usuń średnik z tej linii (możesz również odkomentować inne rzeczy, ale ta linia jest jedyną potrzebną dla Composera)

    ;extension=php_openssl.dll

To wszystko, co musisz zrobić. Instalator Composera powinien teraz zrobić wszystko, czego potrzebujesz.

Machavity
źródło
2
To JEDYNE miejsce online z poprawnym rozwiązaniem (dla konfiguracji innej niż WAMP). Dzięki!
adamdehaven
11

Musisz włączyć "rozszerzenie = php_openssl.dll" w obu plikach (php i apache). ścieżki moich plików na komputerze to:

  1. C: \ wamp \ bin \ php \ php5.3.13 \ php.ini
  2. C: \ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini
Mohammed Saqib Rajput
źródło
8

To jest stare pytanie, ale miałem ten sam problem (z PHP7) i ostatecznie rozwiązanie było całkiem proste. Jednak odkomentowanie wiersza php.inizgodnie z innymi odpowiedziami nie wystarczyło. Musiałem to zmienić z:

;extension=php_openssl.dll

do:

extension=ext/php_openssl.dll

Zwróć uwagę na extprzedrostek. Biblioteka dll już istniała, ale znajdowała się w podfolderze. Po zmianie konfiguracji instalator kompozytora był zadowolony.

K Cartlidge
źródło
7

musisz włączyć rozszerzenie openssl w

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

czyli plik konfiguracyjny php, który ma swój typ, ma "ustawienia konfiguracji" z ikoną przypominającą sterownik notatnika.

  1. otwórz go za pomocą notatnika lub dowolnego edytora,
  2. wyszukaj openssl "twój ctrl + F" wystarczy.
  3. przed rozszerzeniem openssl znajduje się średnik

    ;extension=php_openssl.dll

    usuń średnik i będziesz mieć

    extension=php_openssl.dll
  4. zapisz plik i zrestartuj serwer WAMP, po czym możesz zaczynać. ponownie zainstaluj aplikację, która powinna działać.
DLoneDeveloper
źródło
6

Istnieją dwa php.inipliki, jeden do programowania i jeden do produkcji. Zostaw je, jest inny php.iniplik ustawień konfiguracji tuż nad nimi z zębatką taką jak ikona edytuj to.

keneth
źródło
Alternatywnie, mój nie miał wartości domyślnej. Po prostu skopiuj / wklej wersję prod / dev i zmień jej nazwę na php.ini, a następnie wprowadź zmiany, które sugerowali tutaj inni.
Brynn Bateman
3

Po edycji „właściwych” plików (wszystkie php.ini). nadal miałem problem. Moje rozwiązanie brzmiało:

  1. Dodawanie zmiennej systemowej: OPENSSL_CONF

    wartością OPENSSL_CONF powinien być plik openssl.cnf Twojej aktualnej wersji php.

dla mnie to było:

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

-> Uruchom ponownie WAMP -> powinno teraz działać

Źródło: http://php.net/manual/en/openssl.installation.php

Mafu
źródło
2

Napotkałem ten sam problem, ale kiedy szukałem php.ini i php.exe, znalazłem php.exe w C: \ UwAmp \ bin \ php \ php-5.4.15, gdy php.ini w C: \ UwAmp \ bin \ apache. Po prostu skopiowałem php.ini w C: \ UwAmp \ bin \ php \ php-5.4.15 i odkomentowałem rozszerzenie linii = php_openssl.dll i naprawiłem.

M. K Hossain
źródło
2

Używam serwera WAMP. Właściwie jego pliki pokazały, że otwiera się openssl. Ale ręcznie poszedłem do folderu i zredagowałem php.ini. Potem okazało się, że nie otworzył openssl, odkomentowałem go i działało po ponownym uruchomieniu WAMP-a.

tharanga
źródło
2

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

Przejdź do wiersza, który brzmi:

;extension=php_openssl.dll

i usuń średnik poprzedzający wiersz. Uruchom ponownie usługi serwera WAMP (kliknij w zasobniku ikon> „Uruchom ponownie wszystkie usługi”

yathavan
źródło
1

Jeśli nadal nie możesz rozwiązać swojego problemu, spójrz na to. To może być rozwiązanie, którego szukasz

W folderze C: \ wamp \ bin \ php \ php xyz znajduje się kilka plików php.ini. Możesz znaleźć pliki produkcyjne, programistyczne i inne pliki php.ini. Nie ma sensu edytować plików produkcyjnych i programistycznych. Znajdź plik, który jest dokładnie taki sam jak na poniższym obrazku. (Możesz go znaleźć. Po prostu wpisz php.ini w pasku wyszukiwania i przeprowadź wyszukiwanie). Otwórz plik i usuń; z rozszerzenia = php_openssl.dll. Zapisz plik i zamknij go. Zrestartuj wszystkie usługi na serwerze Wampp. Zainstaluj ponownie swojego kompozytora.

To jest to.

wprowadź opis obrazu tutaj

gihanmu
źródło
1

Wamp współpracuje z innym php.ini znajdującym się w C: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini. Musisz więc ręcznie znaleźć właściwy plik, czyli w C: \ wamp \ bin \ php \ php5.4.12 \ php.ini. Odkomentuj linię extension = php_openssl.dll i po prostu spróbuj ponownie zainstalować Composer.

Dreyfi
źródło
1

Dla tych, którzy mają ten sam problem co ja. Po wykonaniu wszystkich powyższych rozwiązań nadal nie działa dla mnie. Dowiedziałem się, że uWamp tworzy plik PHP.INI w katalogu bin / apache. Musiałem więc skopiować plik PHP.INI do katalogu instalacyjnego php, czyli do katalogu bin / php / phpXXXX. Powinno to być również miejsce, w którym znajduje się plik php.exe wybrany w konfiguracji kompozytora.

Mam nadzieję że to pomoże.

Nitro Chummy
źródło
1

Jeśli skompilowałeś ze źródła, dodawanie extension=php_openssl.dlldo pliku php.ini może nie działać .

Aby rozwiązać ten problem, otwórz wiersz polecenia i wpisz php -i. Przewiń w górę do pierwszej linii, pokaże ci ostatni błąd dotyczący twojego pliku php.ini.

Aby rozwiązać problem, znajdź php_openssl.dllplik, dla mnie znajdował się on w tym samym katalogu co dane wyjściowe kompilacji: C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS Więc po prostu dodaj katalog, w którym jest rozszerzenie, do php.ini:

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

Miejmy nadzieję, że błąd zniknie

J11
źródło
0

Jeśli używasz xampp, wróć do miejsca, w którym wybierasz php wiersza poleceń, którego chcesz użyć na początku instalacji, i wybierz ścieżkę, w której znajduje się folder xampp. Następnie, jeśli instalator mówi, że masz zduplikowane rozszerzenie '= php_openssl.dll 'skomentuje jeden plik ssl w php ini z'; ', a instalacja powinna przebiegać sprawnie.

Ricardo Chitagu
źródło