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?

Uttam Dutta
fonte
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.

BorisS
fonte
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. "

Duramba
fonte
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

Adam Kopciński
fonte
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
Freddy Duarte
fonte
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!

Athlan
fonte
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.

Andrew Koper
fonte
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

Mohammed Saqib Rajput
fonte
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

adang
fonte
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.

karlisup
fonte
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.

codarrior
fonte
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".

Shah Alom
fonte
0

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

Harshit Agrawal
fonte
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.

meti
fonte