Atualizando o PHP 5 para PHP 7 no WordPress

Em geral, considerando que a sua aplicação já tenha suporte ao PHP7 não há qualquer risco em mudanças, mas como já se dizia no tempo da “Internet a lenha”: – Se computador fosse coisa boa não precisaria de um analista”.

No caso do WordPress isso é bem verdade. A versão recomendada do PHP no momento em que este texto é publicado é o PHP 7.2 então se o seu serviço de hospedagem dá este recurso de atualização, por que não?

Há algumas semanas eu recebi um alerta da hospedagem do blog para que fizesse a atualização do já obsoleto PHP 5 para o PHP 7. Depois de muito relutar contra a mudança (já esperando que teria problemas) resolvi arriscar mesmo sem ter pesquisado quais seriam os impactos.

Já de cara o WordPress parou de funcionar e eu fiquei muito “pxxx da vida”. Backup? Sim, tem, mas e o orgulho onde fica?

A mensagem de erro era clara: “Não é possível acessar  banco de dados

Mas ai vem os testes:

  • Banco de dados – OK
  • Saída do phpinfo() – OK
  • Nome dos servidores – OK (a hospedagem garantiu que a mudança não trocaria de servidor)
  • MySQL Admin – OK
  • WordPress – Apenas a tela em branco com a mensagem de erro

Após ativar a opção WP_DEBUG no arquivo config.php e dar um F5 na página do blog, bingo! (este é o segredo para caçar onde está o problema)

define('WP_DEBUG', true);

A simplória mensagem ficou mais detalhada e agora sim era possível procurar uma solução que foi até simples.

Warning: mysqli_real_connect(): The server requested authentication method unknown to the client [mysql_old_password] in /xxxxxxx/blog/wp-includes/wp-db.php on line 1531

Warning: mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client in /xxxxxxx/blog/wp-includes/wp-db.php on line 1531

Atente para o trecho em negrito. Em especial o “mysql_old_password”. Era ai que estava o problema. Desde a atualização do Mysql 4 para o 5, o método de autenticação foi mudado porém compatível com o PHP 5, mas não com o PHP 7.

Foi só entrar no gerenciador de usuário disponível na minha hospedagem, definir uma nova senha para forçar a atualização do modo de autenticação e obviamente alterá-la no arquivo config.php do WordPress.

Agora passou a ser possível abrir o WordPress porém com diversos reports de erro (culpa dos vários  plugins ainda incompatíveis com esta nova versão do PHP).

Neste caso a solução é desativar todos os que estiverem gerando erro e depois substituí-los por outros que sejam compatíveis.

Fica então a grande recomendação. Ainda que a atualização seja imprescindível por razões de segurança se o seu site possui qualquer plugin crítico ao seu funcionamento que seja  incompatível com o novo PHP é melhor adiar a migração até que haja uma nova versão. Só esteja ciente dos riscos de se manter um ambiente PHP vulnerável em seus servidores.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.