Aby pobierać pliki przez https, musisz włączyć rozszerzenie openssl

123

Chciałem zainstalować Zend Framework 2. Ściągnąłem więc szkieletową aplikację. Jak wspomniano w instrukcji ZF2, musimy wydać polecenie

php composer.phar install 

Wewnątrz szkieletu.

Ale pojawia się błąd

Aby pobierać pliki przez https, musisz włączyć rozszerzenie openssl

Następnie włączyłem ssl_module w moim wampie, sprawdziłem plik php_ini i widzę następujący wiersz

rozszerzenie = php_openssl.dll

Nadal pojawia się ten sam błąd. Czy ktoś ma pojęcie, co przegapiłem?

Uttam Dutta
źródło
1
Miałem ten problem z uruchomieniem Travis-ci i okazało się, że w przeciwieństwie do każdej dystrybucji Linuksa pod słońcem, niektóre ze starszych środowisk Travis-ci zostały skompilowane bez openssl, na wypadek gdyby ktoś inny napotkał ten sam problem.
Kzqai,
@Kzqai Czy w moim pytaniu można skompilować to rozszerzenie w travisie, na przykład dla PHP 5.3.3 ? Widzę z ich książki kucharskiej , że można zainstalować rozszerzenia PECL, ale nie sądzę, aby rozszerzenie openssl było dostępne przez PECL.
Jeff Puckett

Odpowiedzi:

286

PHP CLI SAPI używa innego php.ini modułu niż CGI lub Apache.

Znajdź linię ;extension=php_openssl.dllw wamp/bin/php/php#.#.##/php.ini odkomentowane go usuwając średnik ( ;) od początku linii.

BorisS
źródło
Musiałem również włączyć rozszerzenie phar (rozszerzenie = php_phar.dll) i jak wspomniano poniżej, moduł apache ssl!
Diego Favero
1
„PHP CLI SAPI używa innego php.ini niż CGI lub moduł Apache”. To była sztuczka!
George D.
Jeśli nie możesz znaleźć tej linii w swoim, php.inipo prostu dodaj ją extension=php_openssl.dllpod częścią Dynamic Extensions w niej.
totymedli
Używam Xampp, Composer podaje ten sam błąd braku otwartego ssl nawet po usunięciu ';' rozszerzenia openssl w php.ini.
Shashikumar Misal
Jeśli używasz Maca i portmożesz wybrać wersję PHP port select php php55i zainstalować rozszerzenieport install php55-openssl
Prabowo Murti
36

Sprawdź, czy edytujesz poprawny plik php.ini.

Źródła: https://github.com/composer/composer/issues/1440

„WAMP używa różnych plików php.ini w CLI i dla Apache. Kiedy włączysz php_openssl przez interfejs WAMP, włączasz go dla Apache, a nie dla CLI. Musisz zmodyfikować C: \ wamp \ bin \ php \ php- XYZ \ php.ini, aby włączyć go dla CLI. "

Duramba
źródło
2
kto by pomyślał, że ... Naprawdę ... To rozwiązało problem. Dzięki
Ruwantha
20

upewnij się, że masz poprawną ścieżkę do folderu rozszerzenia

extension_dir = "ext"

domyślnie jest komentowany; postać

Adam Kopciński
źródło
1
ta linia została całkowicie zakomentowana i teraz działa
Brian Dillingham
ważne przy instalacji systemu Windows!
haakym
Gdzie jest ta linia? W którym pliku? plik php.ini w 1, C: \ wamp64 \ bin \ apache LUB 2. C: \ wamp64 \ bin \ php \ php7.0.0?
MyDaftQuestions
9

Miałem też ten sam problem podczas grania w Zend Framework 2 i Composer. Używam PHP 5.4 (instalowanego przez macports) i moim rozwiązaniem była instalacja openssl dla PHP 5.4 również przez macports.

sudo port zainstaluj php54-openssl
Freddy Duarte
źródło
5

Miałem do czynienia z tym problemem, ale konfiguracja openssl (również dla CLI) nie pomogła.

Zaktualizowałem Composera i to rozwiązało mój problem.

Wystarczy wpisać:

$ php composer.phar self-update

lub

$ composer selfupdate

Powodzenia!

Athlan
źródło
4

Używam XAMPP. W C: \ xampp \ php \ php.ini, wpis dla openssl nie istniał, więc dodałem "extension = php_openssl.dll" w linii 989 i kompozytor działał.

Andrew Koper
źródło
4

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
To jest źle. Skontaktować się z phpinfo (), która służy php.ini
ThaDafinser
3

Uttam, jeśli twój problem nie zostanie rozwiązany, wypróbuj następujące 3-etapowe podejście. U mnie zadziałało, ponieważ miałem dokładnie ten sam problem.

Krok 1: kliknij ikonę tacy wampy.

krok 2: menu goto apache-> apache moduły

krok 3: kliknij pozycję menu „ssl_module”

automatycznie zrestartuje wamp. jeśli wamp nie uruchomił się ponownie automatycznie, uruchom go ponownie za pomocą menu paska zadań -> Uruchom ponownie wszystkie usługi. Po restarcie potwierdź, że "ssl_module" przychodzi tak, jak zaznaczono w menu apache-> apache modules

po tym po prostu spróbuj zainstalować php composer.phar, przechodząc przez udostępnioną przez Ciebie odpowiedź, plik php.ini zawiera rozszerzenie = php_openssl.dll, a katalog php / ext ma również plik „php_openssl.dll”

powodzenia

adang
źródło
3

Pomogła mi odpowiedź Valery'ego: https://stackoverflow.com/a/14265815/492457

WAMP używa różnych plików php.ini w CLI i dla Apache. kiedy włączysz php_openssl przez interfejs użytkownika WAMP, włączysz go dla Apache, a nie dla CLI. Musisz zmodyfikować C: \ wamp \ bin \ php \ php-5.4.3 \ php.ini, aby włączyć go dla CLI.

karlisup
źródło
2

Upewnij się, że aktualizujesz swój php.iniplik CLI. W moim przypadku była to linia C:\wamp\bin\php\php5.4.3\php.iniodkomentowania extension=php_openssl.dll.

kodarrior
źródło
1

Późna odpowiedź, ale dodanie, aby inni mogli poznać przyczynę.

Musisz także edytować plik php.ini w lokalizacji „wamp \ bin \ php \ php-XYZ”.

Shah Alom
źródło
0

Musiałem odkomentować extension=opensslw php.inipliku, aby wszystko działało!

Harshit Agrawal
źródło
0

Uważaj, jeśli używasz wampa, nie używaj interfejsu wampa do włączania extension=php_openssl.dll

po prostu przejdź do katalogu php, na przykład: C:\wamp\bin\php\php5.4.12edytuj php.inii odkomentuj plik extension=php_openssl.dll.

powinno działać.

meti
źródło