Você deve habilitar a extensão openssl para baixar arquivos via https


123

Eu queria instalar o Zend Framework 2. Então baixei o aplicativo esqueleto. Como mencionado no manual do ZF2, temos que emitir o comando

php composer.phar install 

Dentro do esqueleto.

Mas estou recebendo um erro

Você deve habilitar a extensão openssl para baixar arquivos via https

Então habilitei o ssl_module no meu wamp, verifiquei o arquivo php_ini e posso ver a seguinte linha

extension = php_openssl.dll

Ainda estou recebendo o mesmo erro. Alguém tem alguma idéia do que eu perdi?


1
Eu tive esse problema ao executar o travis-ci e, ao contrário de todas as distros do linux sob o sol, alguns dos ambientes mais antigos do travis-ci foram compilados sem o openssl, apenas no caso de alguém encontrar o mesmo problema.
Kzqai

@Kzqai é possível compilar esta extensão em travis, como para o PHP 5.3.3 na minha pergunta ? Vejo no livro de receitas que você pode instalar extensões PECL, mas não acho que a extensão openssl esteja disponível através do PECL.
22816 Jeff Puckett

Respostas:


286

A CLI do PHP SAPI está usando um php.inimódulo diferente do CGI ou Apache.

Encontrar linha ;extension=php_openssl.dllna wamp/bin/php/php#.#.##/php.ini e descomente-lo removendo o ponto e vírgula ( ;) a partir do início da linha.


Eu também tive que habilitar a extensão phar (extension = php_phar.dll) e, como dito abaixo, o módulo apache ssl!
Diego Favero

1
"O PHP CLI SAPI está usando php.ini diferente de CGI ou módulo Apache." Esse foi o truque!
George D.

Se você não conseguir encontrar essa linha, php.inibasta adicionar a linha extension=php_openssl.dllsob a parte de Extensões dinâmicas.
totymedli

Estou usando o xampp, Composer, dando o mesmo erro de SSL aberto mesmo após remover o ';' da extensão openssl no php.ini.
Shashikumar Misal

Se você estiver usando Mac e port, você pode selecionar a versão do PHP port select php php55e instalar a extensãoport install php55-openssl
Prabowo Murti

36

Verifique se você está editando o arquivo php.ini correto.

Referência: https://github.com/composer/composer/issues/1440

"O WAMP usa arquivos php.ini diferentes na CLI e no Apache. Quando você habilita o php_openssl através da interface do usuário do WAMP, habilita-o para o Apache, não para a CLI. É necessário modificar C: \ wamp \ bin \ php \ php- XYZ \ php.ini para habilitá-lo para a CLI. "


2
quem pensaria que ... Realmente ... Isso resolveu o problema. Obrigado
Ruwantha

20

verifique se você tem o caminho correto para a pasta de extensão

extension_dir = "ext"

por padrão, é comentado com; personagem


1
esta linha foi comentada completamente e agora ele funciona
Brian Dillingham

importante para a instalação do windows!
haakym

Onde fica essa linha? Em qual arquivo? o php.ini em 1, C: \ wamp64 \ bin \ apache OU 2. C: \ wamp64 \ bin \ php \ php7.0.0?
MyDaftQuestions

9

Eu também tive o mesmo problema enquanto brincava com o Zend Framework 2 e o compositor. Estou usando o PHP 5.4 (instalado via macports) e minha solução foi instalar o openssl para o PHP 5.4 via macports também.

instalação da porta sudo php54-openssl

5

Eu enfrentei esse problema, mas a configuração do openssl (também para cli) não ajudou.

Atualizei o compositor e isso diminuiu meu problema.

Basta digitar:

$ php composer.phar self-update

ou

$ composer selfupdate

Boa sorte!


4

Eu uso o XAMPP. Em C: \ xampp \ php \ php.ini, a entrada para openssl não existia, então adicionei "extension = php_openssl.dll" na linha 989 e o compositor funcionou.


4

Você precisa habilitar "extension = php_openssl.dll" nos dois arquivos (php e apache). meu caminho de arquivos do 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


Isto está errado. Verifique com phpinfo () que php.ini é usado
ThaDafinser

3

No entanto, se o problema não for resolvido, tente a seguinte abordagem em três etapas. Funcionou para mim, pois eu tinha exatamente o mesmo problema.

passo 1: clique no ícone da bandeja do wamp.

step2: vá ao menu apache-> apache modules

passo 3: clique no item de menu "ssl_module"

ele reiniciará automaticamente o wamp. se o wamp não for reiniciado automaticamente, reinicie-o no menu da bandeja do wamp-> Reiniciar todos os serviços. Após a reinicialização, confirme se "ssl_module" aparece como marcado no menu apache-> apache modules

depois disso, apenas tente a instalação do php composer.phar passando pela resposta compartilhada por você, o arquivo php.ini contém extension = php_openssl.dll e o diretório php / ext também possui o arquivo "php_openssl.dll"

boa sorte


3

A resposta do Valery me ajudou: https://stackoverflow.com/a/14265815/492457

O WAMP usa arquivos php.ini diferentes na CLI e no Apache. quando você habilita o php_openssl através da interface do usuário do WAMP, habilita-o para o Apache, não para a CLI. Você precisa modificar C: \ wamp \ bin \ php \ php-5.4.3 \ php.ini para habilitá-lo para a CLI.


2

Certifique-se de atualizar seu php.inipara CLI. Para o meu caso, essa era uma linha C:\wamp\bin\php\php5.4.3\php.inidescomentada extension=php_openssl.dll.


1

Resposta tardia, mas adicionando para que outros possam aprender o motivo.

Você também precisa editar o arquivo php.ini no local "wamp \ bin \ php \ php-XYZ".


0

Eu tive que descomentar extension=opensslem php.iniarquivo para que tudo funcionasse!


0

Se você estiver usando o wamp, não use a interface do usuário do wamp para ativar o extension=php_openssl.dll

basta ir ao seu diretório php, por exemplo: C:\wamp\bin\php\php5.4.12e editar php.inie descomentar o arquivo extension=php_openssl.dll.

deveria funcionar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.