Back-End

24 mar, 2017

WordPress no PHP 7.1 – impactos no upgrade da versão

Publicidade

Como eu valorizo desempenho, recursos e segurança, eu decidi atualizar a versão PHP do meu servidor de 5.6 para a mais recente, PHP 7.1.2. Eu tenho principalmente sites em WordPress. Então, qual é o impacto de tal atualização da versão do PHP no WordPress?

No momento em que escrevo este artigo (Março, 2017), PHP 5.6 está em suporte estendido, o que significa que ele ainda obterá atualizações de segurança, mas não mais correções de bugs. A versão PHP 7.x é a única versão PHP de suporte ativa, sendo PHP 7.1 a versão mais recente.

Melhorias de desempenho com o WordPress no PHP 7.1

Primeiro vejamos alguns números, antes que eu traga só gráficos pra você.

Eu peguei uma página bastante grande do meu blog (e popular, também) para executar o benchmark ab contra o protocolo QUIC do Google: movendo a web do TCP para UDP.

O objetivo é executar 300 solicitações o mais rápido possível, 2 de cada vez (simultaneidade = 2).

$ ab -c 2 -n 300 https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp/

Para o bem deste teste, eu decidi desativar o cache HTML estático, eu quero o desempenho bruto do PHP.

Os resultados (média, como fiz o teste várias vezes) – menor é melhor;

  • PHP 5.6: 94,3 segundos
  • PHP 7.1: 74,5 segundos (22% mais rápido)

Para comparação, eu também peguei um aplicativo Laravel que chamei de DNS Spy e fiz o mesmo benchmark.

  • PHP 5.6: 40,1 segundos
  • PHP 7.1: 30,2 segundos (25% mais rápido)

É seguro dizer que o PHP 7.1 é consideravelmente mais rápido do que o 5.6, com cerca de 25% de melhoria bruta de velocidade. E isso sem contar as economias de memória que você obtém, porque a ramificação 7.x é muito mais eficiente em memória do que o 5.6 (eu só não medi com precisão isso para benchmark).

Em um gráfico, as temporizações acima são realmente bastante chatas. Em números absolutos, é a diferença entre um tempo de resposta médio de 350ms versus 250ms. Sim, isso importa, mas em um gráfico com picos, não diz muito.

As coisas ficam mais interessantes quando você olha para páginas que levam mais tempo para carregar, como o feed RSS no WordPress. Este gráfico mostra as temporizações RSS para os posts e os comentários (2 solicitações separadas).

Nesse gráfico, ele passou de um tempo de resposta médio de 610ms (para ambos os feeds) para 280 ms. Isso é uma melhoria de velocidade de 200% sobre PHP 5.6!

 Compatibilidade WordPress no PHP 7.1

A pergunta de um milhão de dólares é, óbvio: o que eu estraguei ao fazer a atualização?

Até agora: nada.

Mas, devo salientar, a maioria dos meus blogs tem um conjunto muito limitado de plugins e são simples tanto em design quanto em funcionalidade.

O próprio WordPress será executado, como requisito mínimo, no PHP 5.2.4 ou superior. Isso é um bug, não um recurso. Essa antiga versão do PHP deveria ter sido enterrada e esquecida há muito tempo.

Mas há uma vantagem, também: porque eles ainda suportam PHP 5.2.x, eles não podem usar qualquer um dos recursos mais recentes do PHP 5.3 (namespacing), PHP 5.4 (funções anônimas), 5.5 (OPCache em vez de APC)… Então, o core do WordPress é um PHP realmente chato. Esse PHP chato será executado em praticamente qualquer versão do PHP, incluindo as ramificações 7.x.

Plugins formam uma questão diferente: plugins populares, como o Plugin Yoast SEO, começarão ativamente a incentivar os usuários a atualizar para uma versão posterior do PHP. Esta é uma excelente notícia. Isso também significa que os plugins serão o seu risco ao atualizar versões do PHP, pois suas versões PHP suportadas podem variar.

Teste de funcionalidade no PHP 7.1

Limitado, mas isso é o que eu testei (escrevendo este artigo) e o que ainda funciona, sem falhas;

  • Escrita & edição de posts
  • Envios de arquivos
  • GUI & editor de texto
  • Dashboard, estatísticas & widgets do WordPress
  • Atualizações de plug-ins & atualizações automáticas

Parecem ser as maiores peças de funcionalidade, para mim.

Avisos e erros do PHP

Isso não será exibido na GUI, mas seus logs de erro do PHP-FPM poderão começar a mostrar coisas como esta:

$ tail -f php/error.log
[09-Mar-2017 20:41:54 UTC] PHP Warning:  A non-numeric value encountered in /var/www/vhosts/ma.ttias.be/htdocs/wp-content/plugins/.../Abstract.php on line 371
[09-Mar-2017 20:42:17 UTC] PHP Warning:  A non-numeric value encountered in /var/www/vhosts/ma.ttias.be/htdocs/wp-content/plugins/.../Abstract.php on line 371
[09-Mar-2017 20:43:54 UTC] PHP Warning:  A non-numeric value encountered in /var/www/vhosts/ma.ttias.be/htdocs/wp-content/plugins/.../Abstract.php on line 371

Como não tenho nenhum interesse em manter plugins e não tenho tempo para aprender como o SVN trabalha novamente para enviar um PR ou patch, eu simplesmente desabilitei os avisos em PHP.

Conclusão: WordPress + PHP 7.1 = ❤

Para mim, isto simplesmente funciona. Sem caprichos, desempenho mais rápido & uma versão totalmente suportada do PHP.

O que está impedindo você de fazer a atualização?

 

***

Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/wordpress-php-7-1/