7
respostas

Problemas ao Instalar Doctrine

Ao instalar o Doctrine em um novo projeto o seguinte erro foi gerado:

''' [Composer\Exception\NoSslException] The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at your own risk, by setting the 'disable-tls' opt ion to true.

'''

Quando tento carregar uma classe ela não é reconhecida(undefined). Este mesmo problema já ocorreu em outras etapas do curso, por isso resolvi recomeçar, mas o erro persiste. Como corrigir isso?

7 respostas

Olá Jamil,

O Composer não está encontrando o openssl do php. Você pode tentar duas coisas:

  1. Você pode tentar ativar o openssl no php. Encontre o arquivo de configuração do php, o php.ini, e procure a linha:

    extension=php_openssl.dll

    Remova o # do início caso exista, ou adicione essa linha no arquivo se não existir.

  2. Caso o item acima não funcione, tente desabilitar o uso do openssl. Isso pode afetar a segurança do projeto e por isso não é recomendado para um projeto real em funcionamento, mas não tem problema em um projeto local e de aprendizado. Para isso execute o comando abaixo:

    composer config -g -- disable-tls true

Nenhuma das duas opções funcionou. Não foi encontrado o módulo openssll, mesmo incluindo diretamente no arquivo php.ini.

Fala, Jamil! Beleza?

Você tá no Windows? Se sim, na pasta de instalação do PHP você já renomeou o php.ini-development pra php.ini?

Nele, descomentou a linha extension=php_openssl?

Se sim, executa pra mim o comando php -m e vê se openssl já aparece nessa lista, por favor.

Bom dia!

Fiz a verificação e o módulo openssl não foi localizado, apesar de estar descomentado no arquivo php.ini. A seguinte mensagem é exibida:

Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_openssl.dll' - NÒo foi possÝvel encontrar o m¾dulo especificado.

Parece que o php não está encontrando a extensão php_openssl.dll ou a pasta das extensões. Olha na pasta do php se o arquivo php_openssl.dll existe.

Se o arquivo existir, procura no php.ini a linha com o extension_dir, altera para os valores abaixo e testa se algum funciona:

  1. extension_dir = "ext"
  2. extension_dir = "C:\php\ext"

Caso ainda não funcione, procura dentro da pasta do php uma pasta chamada ext que possui vários arquivos .dll dentro, inclusive o php_openssl.dll, e coloca o caminho dessa pasta no extension_dir

Não funciona. Uma coisa interessante é que comecei a rodar o projeto no Ubuntu e não ocorreu erro. Vou deixar de lado o Ruwindows(rsss) e continuar no Ubuntu. Obrigado pela ajuda.

Agora entendi o problema, Jamil.

Eu recomendo fortemente deixar o Ruwindow$ de lado, mas se quiser trabalhar com ele, é tranquilo resolver.

Tinha uma linha comentada começando com extension_dir. Em cima dela tem um comentário sobre ser Linux ou Windows. Descomenta a linha referente ao Windows.

Além disso, o extension=php_openssl não precisa do .dll no final desde a versão 7.2 do PHP.

Então, se quiser voltar pro $i$tema da Micro$oft, só resolver esses pepinos, mas se você tem um Linux aí a disposição, super recomendo continuar usando ele. hehehehe

Forte abraço e bons estudos.