Como habilitar a extensão openssl do PHP para instalar o Composer?

113

Estou tentando instalar o Laravel na configuração do WAMP. Estou recebendo uma mensagem de aviso por não habilitar o openssl, o que já havia feito no WAMP.

Aqui está uma captura de tela da mensagem.

insira a descrição da imagem aqui

FirmView
fonte
1
Verifique o caminho do PHP na variável de ambiente %PATH%, talvez o Composer esteja procurando por PHP em outro local ao invés de WampServer.
Rubens Mariuzzo
Eu tive o mesmo problema. Eu estava editando o php.ini a partir do ícone wamp. Mas fiz manualmente, reiniciei meu servidor e funciona.
themhz

Respostas:

121

É possível que o WAMP e o Composer estejam usando instalações PHP diferentes. O Composer usará o PHP definido na PATHvariável de ambiente.

Se você deseja habilitar a extensão openssl para instalar o Composer , primeiro você precisa verificar a localização da instalação do PHP.

  1. Abra um prompt de comando, digite: echo %PATH%e verifique a localização da instalação do PHP.
  2. Vá para esse local e edite o arquivo chamado: php.ini .
  3. Remova o comentário da linha extension=php_openssl.dllremovendo o ponto-e-vírgula no início.

Agora você está pronto para instalar o Composer.

Rubens Mariuzzo
fonte
2
Acontece que não tenho essa extensão na minha instalação do XAMPP. Acabei de adicionar (extension = php_openssl.dll) no php.ini e ele está baixando as dependências do laravel.
Adrian P.
8
quando digito echo %PATH%, obtenho: 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.. não há nenhum php instalado em nenhum desses diretórios .. o que eu faço agora?
abbood
19
wamp está usando este php.ini: c: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini mas composer está usando PHP da CLI e, portanto, está lendo este arquivo: c: \ wamp \ bin \ php \ php5.4.12 \ php.ini (então você precisa habilitar o openssl lá)
Enrique
2
Estou usando o xampp, Composer dando o mesmo erro de falta de SSL aberto, mesmo depois de remover o ';' da extensão do openssl no php.ini.
Shashikumar Misal
30
Eu também tive que remover o comentário da linha extension_dir = "ext"em php.ini, mas eu estou usando a instalação PHP simples ao invés de WAMP.
David Harkness
62

Resolvi meu problema de uma maneira diferente. O problema é que a GUI do wamp era enganosa: alegava que eu tinha php_opensslhabilitado .. e se eu clicasse na php.inimesma GUI .. na verdade mostrava que não extension=php_openssl.dllestava comentado ..

Não tenho certeza se estou usando a mesma versão do instalador do composer do OP, mas ele realmente pede a você no início para especificar o php.exe que você gostaria de aplicar no composer (o que basicamente garante que ninguém tente aplicar o composer ao o executável php errado como o que aconteceu com o OP) ..

A maneira como eu resolvi isso foi indo para a instalação do php dentro do pacote wamp: C:\wamp\bin\php\php5.4.12e olhando php.inlá .. quando abri fiquei chocado que a linha extension=php_openssl.dllfoi realmente comentada! Eu descomentei e funcionou muito bem.

insira a descrição da imagem aqui

abbood
fonte
Obrigado, depois de olhar para esta resposta, descobri que o wamp estava usando 5.5.12, mas selecionei o diretório 5.4 para php.exe
Afnan Bashir
Em que caminho os arquivos libeay32.dllou liblibcrypto-*.dllresidem? php.net/manual/de/openssl.installation.php
Bernhard Döbler
53

Tive o mesmo problema e aqui está a solução que encontrei, no seu php.ini você precisa fazer algumas alterações:

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

Todos aqui falam sobre a extensão openssl, mas no Windows você precisa ativar a extensão dir também.

Francisco cabral
fonte
3
Homens vocês são o único que mencionou o extension_dir, vocês são ótimos!
giannis christofakis
Isso funcionou para mim. Eu tinha baixado o PHP diretamente como neste turtorial .
roubado em
26

Para o servidor WAMP, o comentário feito por "Enrique" resolveu meu problema.

wamp está usando este php.ini :

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

Mas o composer está usando PHP da CLI e, portanto, está lendo este arquivo:

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

Para o compositor, você terá que habilitar a extensão em

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

Mudança:

;extension=php_openssl.dll 

para

extension=php_openssl.dll
user3887814
fonte
Para MAMP, tive que copiar o arquivo php.ini de C: \ MAMP \ conf \ phpx.xx para C: \ MAMP \ bin \ php \ phpx.xx (\ conf \ .... para \ bin \ .. .)
Mike,
15

Se você estiver fazendo isso no Windows sem uma das pilhas WAMP, veja como fazer isso

  1. Baixe uma instalação do PHP para Windows . Geralmente, você deseja uma instalação sem thread-safe. Você pode usar compilações de 32 ou 64 bits
  2. Extraia o arquivo zip em algum lugar. Eu sugeriria C:\php. O instalador do Composer o encontrou lá sem qualquer solicitação adicional
  3. As versões mais recentes do PHP para Windows não vêm com um php.inipor padrão . Em vez disso, você verá dois arquivos, conforme observado abaixo. Renomeie um para php.iniou copie-o para php.ini.
    • php.ini-development
    • php.ini-production
  4. Abra seu php.iniarquivo e remova o ponto-e-vírgula desta linha (você pode querer descomentar outras coisas também, mas esta linha é a única necessária para o Composer)

    ;extension=php_openssl.dll

Isso deve ser tudo que você precisa fazer. O instalador do Composer deve fazer tudo o que você precisa a partir daqui.

Machavity
fonte
2
Este é o ÚNICO local online com a configuração da solução correta (para um não-WAMP). Obrigado!
adamdehaven
11

Você precisa habilitar "extension = php_openssl.dll" em ambos os arquivos (php e apache). o caminho dos meus arquivos pc são estes:

  1. C: \ wamp \ bin \ php \ php5.3.13 \ php.ini
  2. C: \ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini
Mohammed Saqib Rajput
fonte
8

Essa é uma pergunta antiga, mas eu simplesmente tive o mesmo problema (com o PHP7) e a solução foi, no final, muito simples. No php.inientanto, descomentar a linha de acordo com as outras respostas não foi o suficiente. Eu precisava mudar de:

;extension=php_openssl.dll

para:

extension=ext/php_openssl.dll

Observe o extprefixo. A dll já existia, mas estava em uma subpasta. Depois de alterar a configuração, o instalador do composer ficou feliz.

K Cartlidge
fonte
7

você precisa habilitar a extensão openssl em

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

este é o arquivo de configuração php que possui o tipo "configurações" com um ícone do tipo bloco de notas de driver.

  1. abra-o com o notepad ou qualquer editor,
  2. procure por openssl "seu ctrl + F".
  3. há um ponto e vírgula antes da extensão do openssl

    ;extension=php_openssl.dll

    remova o ponto e vírgula e você terá

    extension=php_openssl.dll
  4. salve o arquivo e reinicie seu servidor WAMP depois que você estiver pronto para ir. instale novamente o aplicativo que deve funcionar.
DLoneDeveloper
fonte
6

Existem dois php.iniarquivos, um para desenvolvimento e outro para produção. Deixe-os, há outro php.iniarquivo para configurações logo acima deles com uma engrenagem como o ícone de edição.

Keneth
fonte
Como alternativa, o meu não tinha um padrão. Basta copiar / colar o produto / dev e renomeá-lo para php.ini, em seguida, faça as edições que outros sugeriram aqui.
Brynn Bateman
3

Depois de editar os arquivos "corretos" (todos os php.ini's). eu ainda tinha o problema. Minha solução foi:

  1. Adicionando uma variável de sistema: OPENSSL_CONF

    o valor de OPENSSL_CONF deve ser o arquivo openssl.cnf de sua versão php atual.

para mim foi:

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

-> Reinicie o WAMP -> deve funcionar agora

Fonte: http://php.net/manual/en/openssl.installation.php

Mafu
fonte
2

Eu enfrentei o mesmo problema, mas quando estava procurando por php.ini e php.exe encontrei php.exe em C: \ UwAmp \ bin \ php \ php-5.4.15 quando php.ini em C: \ UwAmp \ bin \apache. Acabei de copiar php.ini em C: \ UwAmp \ bin \ php \ php-5.4.15 e descomentar a extensão de linha = php_openssl.dll e foi corrigido.

M. K Hossain
fonte
2

Estou usando o servidor WAMP. Na verdade, seus arquivos mostraram que o openssl está aberto. Mas manualmente fui até a pasta e editei php.ini. Então descobri que ele não abriu o openssl. Descomentei e funcionou após reiniciar o WAMP.

tharanga
fonte
2

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

Navegue até a linha que diz:

;extension=php_openssl.dll

e remova o ponto-e-vírgula que precede a linha. Reinicie os serviços do servidor WAMP (clique na bandeja do ícone> 'Reiniciar todos os serviços'

yathavan
fonte
1

Se você ainda não conseguiu resolver o seu problema, dê uma olhada nisto. Esta pode ser a solução que você está procurando

Existem vários arquivos php.ini na pasta C: \ wamp \ bin \ php \ php xyz. Você pode encontrar arquivos de produção, desenvolvimento e alguns outros php.ini. Não adianta editar arquivos de produção e desenvolvimento. Encontre o arquivo que é exatamente igual à imagem abaixo. (Você pode encontrá-lo. Basta digitar php.ini na barra de pesquisa e fazer uma pesquisa). Abra o arquivo e remova; de extension = php_openssl.dll. Salve o arquivo e feche-o. Reinicie todos os serviços no servidor Wampp. Reinstale o seu compositor.

É isso.

insira a descrição da imagem aqui

Gihanmu
fonte
1

Wamp funciona com outro php.ini que está em C: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini. Portanto, você precisa encontrar manualmente o arquivo correto, que está em C: \ wamp \ bin \ php \ php5.4.12 \ php.ini. Remova o comentário da linha extension = php_openssl.dll e tente instalar o Composer novamente.

Dreyfi
fonte
1

Pra quem tá com o mesmo problema que eu. Depois de fazer todas as soluções acima, ainda não funcionou para mim. Eu descobri que uWamp estava criando o arquivo PHP.INI no diretório bin / apache. Então eu tive que copiar o arquivo PHP.INI para o diretório de instalação php, ou seja, o diretório bin / php / phpXXXX. Também deve ser onde está o php.exe que você selecionou na configuração do compositor.

Espero que isto ajude.

Nitro Chummy
fonte
1

Se você compilou a partir do código-fonte, adicionar extension=php_openssl.dllao arquivo php.ini pode não funcionar .

Para solucionar isso, abra um prompt de comando e digite php -i. Role até a primeira linha, ele mostrará o erro mais recente relacionado ao seu arquivo php.ini.

Para resolver o problema, encontre o php_openssl.dllarquivo, para mim estava no mesmo diretório da saída da compilação: C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS Então, basta adicionar o diretório onde está a extensão, ao php.ini:

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

Esperançosamente, o erro terá desaparecido

J11
fonte
0

Se você estiver usando o xampp. Volte para onde você escolheu qual php de linha de comando deseja usar no início da instalação e selecione o caminho onde a pasta xampp está incluída. Depois disso, se o seu instalador disser que você tem uma extensão duplicada php_openssl.dll 'comente um arquivo ssl em seu php ini com um'; 'e sua instalação deverá ser executada sem problemas.

ricardo chitagu
fonte