PHP::SimpleXML não foi ativado após atualizar versão do php para 7.0.3 na distro Ubuntu

Elefante PHP

Nível Intermediário

 

Hoje cedo (24/02/2016) após uma atualização do PHP para versão 7.0.3, fui surpreendido com as seguintes mensagens de erros relacionadas ao módulo SimpleXML:

Fatal error: Uncaught Error: Call to undefined function simplexml_load_file() in [ ... ] /ConfigSite.php on line 80
Error: Call to undefined function simplexml_load_file() in  in [ ... ]  /ConfigSite.php on line 80

Obs: O caminho dos scripts foram simplificados, não existem aqueles colchetes. 😉

No meu caso, utilizo Linux distribuição Ubuntu como sistema operacional e a versão atual é 15.10. Desde seu lançamento, já venho utilizando PHP 7 para desenvolvimento e este foi o primeiro pŕoblema que enfrentei após uma atualização. Mas embora a primeira impressão fosse de grande dificuldade para solucionar, ainda mais após uma rápida passada pela internet a solução e sem nenhuma informação publicada a respeito, parti para minha investigação pessoal para solucionar o problema que não foi nenhum bicho de 7 cabeças.

A primeira coisa foi verificar através da função phpinfo() se o módulo SimpleXML estava ativo e para minha surpresa, não apareceu nenhuma informação sobre ele, além do nome autor responsável pelo módulo! Como você pode ver na imagem seguinte:

Informações obtidas com phpinfo() sobre o módulo SimpleXML

Então segui em frente através do terminal para descobrir se o módulo existia no sistema:

alexandre@mypc01-desktop:~$ php -m | grep -i simple*
alexandre@mypc01-desktop:~$

Como você vê, nada! Aí está o problema.

Então sem mais delongas, qual foi a solução?

Na distribuição Ubuntu, temos a disposição o Synapitc, um gerenciador de pacotes no formato gráfico, muito prático principalmente quando se está com pressa! (Mas não perca o foco! cuidado com a falta de atenção! ;-))

Então para minha surpresa, o pacote php7.0-xml não estava instalado e isso se deve provavelmente durante a ultima atualização, onde foi necessário sua remoção mas acabou não sendo instalado a nova versão. O que fiz foi imediatamente foi selecionar este pacote e pedir para instalar e após tentar novamente localizar o módulo, o resultado já foi positivo:

alexandre@mypc01-desktop:~$ php -m | grep -i simple*
SimpleXML
alexandre@mypc01-desktop:~$

Restava apenas reiniciar o servidor apache para verificar se apenas este procedimento resolveria a problema. Utilizando o comando:

alexandre@mypc01-desktop:~$ /etc/init.d/apache2 restart

E voilà! já estava resolvido! 🙂

Esta solução funcionou perfeitamente na distribuição Ubuntu 15.10. Mas caso você esteja utilizando qualquer outra distribuição construída em cima da Debian, poderá fazer uso do arquivo no site da Debian através deste link https://packages.debian.org/sid/php7.0-xml.

Você também encontrará os pacotes neste caminho: https://launchpad.net/~ondrej/+archive/ubuntu/php

Caso este artigo tenha lhe ajudado, agora é a sua vêz de me ajudar! Clique em curtir ou deixe sua opinião, e compartilhe com seus colegas!

[]’s

3 comentários

  1. Amigo, dica muito boa.
    Vou acrescentar para quem não quiser (ou não possa) usar o Synaptic, como que eu fiz.

    Rodei direto na linha de comando o seguinte:

    # apt install php7.0-mbstring php7.0-zip php7.0-xml

    Funciona de boa.
    Abç

    1. ótimo Mateus! Porém as instruções acima funcionaram para quem já tinha PHP 7 com esta LIB instalada mas simplesmente parou de funcionar. Contudo, os repositórios foram corrigidos e esta solução de fato pode já estar defasada!

Deixe um comentário

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