Laravel::Erro: Call to undefined function Illuminate\Encryption\openssl_cipher_iv_length()

Logo Laravel

Atualizando o PHP para versões acima de 7.2 junto ao apache 2.4.39 VC 15, no Windows 10, recebi a mensagem de erro: Call to undefined function Illuminate\Encryption\openssl_cipher_iv_length()

 

Observação: Isso tudo aconteceu no Windows 10. Em sistemas operacionais Linux ou baseados no UNIX, se ocorrer algo semelhante, verifique se o Open SSL está instalado. Este artigo não cobre situações ocorridas em outros sistemas operacionais.

Deparei-me com esse problema em duas situações: primeiro foi quando fiz uma atualização da versão do PHP 5.6 para versão 7.2, utilizando Windows 10 e já com Apache 2.4.39 VC15, que havia sido atualizado em outro momento anterior. A outra situação foi pouco depois em outro momento e em outro computador, quando fiz uma atualização do Apache 2.4 para a versão Apache 2.4.39 VC15, bem como a atualização do PHP para a versão 7.2, os dois juntos. A terceira vez, bem mais recente foi, em um ambiente de testes, quando fiz a instalação do Apache 2.4.39 VC15 e do PHP 7.3.6, juntos do zero. Imaginei que fazendo a instalação do zero, forma não me encontraria de novo com o problema. Mas, quando “googuei” …rs sobre o assunto, percebi que diferentes usuários, e pelo visto a maioria, se não todos, utilizando Windows e tendo como o servidor apache 2.4 instalado diretamente no sistema ou pelo Wamp, também tiveram o mesmo problema. Quando tentaram atualizar (de versões 5.x, 7.0 7.1 para 7.2 ou 7.3) e foram executar os seus códigos, a tela mostrada era semelhante a esta:

Mensagem de erro Laravel 7.3.6 e Apache 2.4.39 VC15
Mensagem de erro Laravel 7.3.6 e Apache 2.4.39 VC15

Nessa situação quando se executa um phpinfo() em uma página de teste, ou mesmo no terminal com o comando php -i, descobre-se que o Open SSL não está ativado. A tendência natural é abrir o para edição o arquivo php.ini e “descomentar” a linha que habilita a extensão open_ssl. Ao se fazer isso, descobre-se que não dá certo. Então?

Para resolver a situação, nas situações acima, indo direto ao ponto, decidi instalar a versão Apache 2.4.39 VC14. Quando baixei essa versão, descobri que ainda continha dois arquivos importantes: ssleay32.dll e libeay32.dll. Todos os momentos que ocorreram os incidentes, foram bem recentes a este artigo, por isso, não mais que alguns meses. Por isso, a versão do apache mencionada no artigo já estava disponível. Na última incidência (30/05/2019), ainda não havia uma versão do Apache, a frente da versão 2.4.39 VC 15, que incluísse os arquivos ssleay32.dll e libeay32.dll. Por algum motivo não também não estavam inclusos na ultima atualização do PHP (7.3.6) e até o momento em que este artigo fora redigido.

Observação: Foram Utilizadas em todos os momentos, as versões para plataformas x64. Portanto, neste artigo não foi possível afirmar ao certo se para as arquiteturas baseadas x86, o incidente também ocorra e se ocorrer, seja a mesma solução. Contudo, como se está tratando do sistema operacional Windows, o procedimento pode ser aplicado. Nas pesquisas realizadas na internet pareceu apresentar que usuários das plataformas x86 também estiveram com problemas.

A simples cópia destes arquivos parece ter funcionado para alguns usuários, mas não foi o caso aqui. Além disso, quando foi feito a instalação, notou-se que ao se executar o código, o problema ainda continuava. Portanto, não era apenas uma questão de instalar! Foi então que, ao analisar os Logs do Apache, notou-se que haviam um monte de linhas com Warning, informando basicamente todos os módulos que não haviam sido encontrados e, entre eles o open_ssl. Assim, fora necessário editar o arquivo php.ini, e para cada linha com declaração de extensão, redefinir os apontamentos com o caminho absoluto, sendo dessa maneira:

extension=c:/php-7.3.6/ext/php_openssl.dll

Note que, no exemplo, o PHP 7 está instalado no diretório “c:\php-7.3.6”. Como o arquivo php_openssl.dll está dentro do subdiretório “ext”, foi necessário defini-lo ali daquela maneira. Para o PHP funcionar sem problemas, foi preciso fazer isso em todas as declarações de extensões.

Foi utilizado para instalação do Apache 2.4.39 VC 14 o arquivo deste site: https://www.apachelounge.com/download/

Já o PHP 7.3.6 foi utilizado sem problemas o VC 15, sendo para o caso, o VC15 x64 Thread Safe foi escolhido: https://windows.php.net/download#php-7.3

É importante notar que, deve-se atender aos requisitos para:

Fazendo esse trabalho, obteve-se êxito ao executar os códigos construídos com Laravel 5.x.

[]’s

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.