O PHP 8 trouxe melhorias significativas de performance, segurança e funcionalidades. Para sites WordPress, a atualização pode significar um ganho de velocidade de 2 a 3 vezes em relação ao PHP 7.0, além de acesso a recursos modernos da linguagem.
Neste guia, vamos cobrir todo o processo: desde a verificação de compatibilidade até a configuração otimizada do PHP 8 em diferentes ambientes de servidor, incluindo cPanel, Plesk, Ubuntu com Nginx e Ubuntu com Apache.
Por Que Atualizar para PHP 8?
Performance superior
Os benchmarks são claros. Comparando o tempo de execução de requisições WordPress:
- PHP 7.0: ~ 100 requisições por segundo (baseline)
- PHP 7.4: ~ 130 requisições por segundo ( ~ 30% mais rápido)
- PHP 8.0: ~ 160 requisições por segundo ( ~ 60% mais rápido)
- PHP 8.1: ~ 170 requisições por segundo (Fibers, Enums)
- PHP 8.2: ~ 175 requisições por segundo (readonly classes)
- PHP 8.3: ~ 180 requisições por segundo (typed class constants)
A compilação JIT (Just-In-Time) introduzida no PHP 8.0 é o principal responsável pelo salto de performance, especialmente em operações intensivas de CPU.
Segurança
Cada versão do PHP tem um ciclo de vida com suporte ativo e suporte de segurança. Versões fora do ciclo de vida não recebem mais correções de segurança:
- PHP 7.4: fim do suporte de segurança em novembro de 2022
- PHP 8.0: fim do suporte de segurança em novembro de 2023
- PHP 8.1: fim do suporte de segurança em dezembro de 2025
- PHP 8.2: suporte de segurança até dezembro de 2026
- PHP 8.3: suporte de segurança até dezembro de 2027
Usar uma versão sem suporte significa que vulnerabilidades descobertas não serão corrigidas.
Novos recursos da linguagem
O PHP 8 introduziu funcionalidades que tornam o código mais limpo e seguro:
- Named arguments: facilita chamadas de função com muitos parâmetros
- Match expression: alternativa mais segura ao switch
- Union types: permite declarar múltiplos tipos para parâmetros
- Fibers (8.1): corrotinas para código assíncrono
- Enums (8.1): tipos enumerados nativos
- Readonly properties (8.1) e classes (8.2): imutabilidade nativa
PHP 8.0 vs 8.1 vs 8.2 vs 8.3 para WordPress
Qual versão do PHP 8 escolher para o seu WordPress? Aqui está uma orientação prática.
PHP 8.0
Foi a primeira versão da linha 8.x, mas o suporte de segurança já encerrou em novembro de 2023. Não é mais recomendada.
PHP 8.1
Amplamente compatível com o WordPress e com a maioria dos plugins populares. Porém, o suporte de segurança encerrou em dezembro de 2025. Se você está nesta versão, planeje a migração para 8.2 ou 8.3.
PHP 8.2
A escolha mais equilibrada para a maioria dos sites WordPress em 2026. Suporte de segurança até dezembro de 2026, boa compatibilidade com plugins e temas, e performance sólida.
PHP 8.3
A versão mais recente com suporte ativo. Oferece a melhor performance e os recursos mais modernos. Recomendada para sites que já verificaram a compatibilidade de todos os plugins e temas. Suporte até dezembro de 2027.
Recomendação: para a maioria dos sites WordPress em produção, PHP 8.2 ou 8.3 é a melhor escolha. Se todos os seus plugins são mantidos ativamente, vá direto para o PHP 8.3.
Verificando a Versão Atual do PHP
Antes de atualizar, descubra qual versão do PHP está rodando no seu servidor.
Via painel do WordPress
Acesse Ferramentas > Saúde do Site > Informações > Servidor . A linha "Versão do PHP" mostra a versão atual.
Via phpinfo()
Crie um arquivo temporário na raiz do WordPress:
<?php phpinfo();
Salve como info.php , acesse seusite.com/info.php no navegador e procure pela linha "PHP Version".
Importante: delete esse arquivo imediatamente após a verificação. Ele expõe informações sensíveis sobre o servidor.
Via linha de comando (SSH)
php -v
Resultado esperado:
PHP 8.3.4 (cli) (built: Mar 16 2024 08:40:08) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.4, Copyright (c) Zend Technologies
with Zend OPcache v8.3.4, Copyright (c), by Zend Technologies
Verificando Compatibilidade com PHP 8
Atualizar o PHP sem verificar compatibilidade pode quebrar o site. Plugins e temas antigos podem usar funções removidas nas versões mais recentes do PHP.
Plugin PHP Compatibility Checker
O plugin oficial "PHP Compatibility Checker" verifica todos os plugins e temas instalados:
- Instale o plugin PHP Compatibility Checker pelo painel do WordPress
- Vá em Ferramentas > PHP Compatibility
- Selecione a versão de PHP alvo (ex: 8.3)
- Clique em "Scan site"
- Aguarde a análise (pode demorar alguns minutos)
O relatório mostra:
- Erros: código incompatível que vai causar falha fatal
- Avisos: código que pode causar comportamento inesperado
Verificação manual com PHPStan
Para desenvolvedores, o PHPStan oferece análise mais detalhada:
composer require --dev phpstan/phpstan vendor/bin/phpstan analyse wp-content/plugins/meu-plugin/ --level 5
O que fazer com plugins incompatíveis
Se um plugin é incompatível com o PHP 8:
- Verifique se há atualização disponível para o plugin
- Procure uma alternativa que seja compatível
- Contate o desenvolvedor do plugin e pergunte sobre planos de compatibilidade
- Considere um fork se o plugin é abandonado (último recurso)
Atualizando o PHP no cPanel
A maioria das hospedagens compartilhadas usa cPanel, que permite trocar a versão do PHP com alguns cliques.
Método 1: MultiPHP Manager
- Acesse o cPanel da sua hospedagem
- Procure por MultiPHP Manager na seção "Software"
- Selecione o domínio do seu site na lista
- No dropdown de versão do PHP, selecione PHP 8.2 ou PHP 8.3
- Clique em "Aplicar"
A mudança é instantânea. Acesse o site para verificar se está funcionando.
Método 2: Select PHP Version (CloudLinux)
Hospedagens que usam CloudLinux oferecem uma interface diferente:
- No cPanel, procure por Select PHP Version
- Selecione a versão desejada no dropdown superior
- Clique em "Set as current"
- Configure as extensões PHP necessárias (veja a seção de extensões abaixo)
- Clique em "Save"
Extensões PHP necessárias para WordPress
Após trocar a versão, verifique se as extensões essenciais estão habilitadas:
- mysqli (obrigatória para conexão com o banco de dados)
- curl (requisições HTTP, atualizações, APIs)
- gd ou imagick (processamento de imagens)
- mbstring (manipulação de strings multibyte)
- xml (parseamento de RSS, sitemaps, importações)
- zip (instalação de plugins e temas)
- intl (internacionalização)
- openssl (conexões HTTPS)
- opcache (cache de bytecode, performance)
Atualizando o PHP no Plesk
Via interface do Plesk
- Acesse o painel do Plesk
- Vá em Websites & Domains
- Clique no domínio do seu site
- Procure por PHP Settings ou Configurações de PHP
- Selecione a versão desejada (PHP 8.2 ou 8.3)
- Escolha o modo de execução: FPM application (recomendado) ou FastCGI
- Clique em "OK" ou "Aplicar"
Ajustando configurações no Plesk
Na mesma tela de PHP Settings, você pode ajustar o php.ini diretamente:
- memory_limit : 256M ou 512M
- max_execution_time : 300
- upload_max_filesize : 64M
- post_max_size : 64M
Atualizando o PHP no Ubuntu com Nginx
Para servidores VPS ou dedicados rodando Ubuntu com Nginx, o processo é feito via linha de comando.
Adicionando o repositório do PHP
O repositório padrão do Ubuntu pode não ter a versão mais recente do PHP. Adicione o repositório do Ondrej Sury, que é o mantenedor oficial dos pacotes PHP para Debian e Ubuntu:
sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update
Instalando o PHP 8.3 com extensões
sudo apt install php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd \
php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl \
php8.3-opcache php8.3-imagick php8.3-bcmath php8.3-soap
Configurando o PHP-FPM
Edite o arquivo de configuração do pool PHP-FPM:
sudo nano /etc/php/8.3/fpm/pool.d/www.conf
Configurações recomendadas para WordPress:
[www] user = www-data group = www-data listen = /run/php/php8.3-fpm.sock listen.owner = www-data listen.group = www-data ; Ajuste de acordo com a RAM do servidor pm = dynamic pm.max_children = 25 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 10 pm.max_requests = 500
Para calcular o pm.max_children , use a fórmula: RAM disponível para PHP / memória por processo. Cada processo PHP do WordPress consome aproximadamente 40-60 MB.
Atualizando a configuração do Nginx
Edite o bloco de servidor do Nginx para apontar para o novo socket PHP-FPM:
server {
listen 80;
server_name seusite.com www.seusite.com;
root /var/www/seusite.com/public_html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
O ponto principal é a linha fastcgi_pass , que deve apontar para o socket do PHP 8.3: /run/php/php8.3-fpm.sock .
Reiniciando os serviços
sudo systemctl restart php8.3-fpm sudo systemctl restart nginx
Verificando se funcionou
php -v sudo systemctl status php8.3-fpm
Acesse o site e verifique na Saúde do Site se a versão do PHP foi atualizada.
Atualizando o PHP no Ubuntu com Apache
O processo é similar, com diferenças no módulo do Apache.
Instalando o PHP 8.3
sudo apt update
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.3 php8.3-mysql php8.3-curl php8.3-gd \
php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl \
php8.3-opcache php8.3-imagick php8.3-bcmath
Desativando a versão antiga e ativando a nova
# Desativar a versão antiga (ex: PHP 7.4) sudo a2dismod php7.4 # Ativar o PHP 8.3 sudo a2enmod php8.3 # Reiniciar o Apache sudo systemctl restart apache2
Usando PHP-FPM com Apache (recomendado)
O modo PHP-FPM é mais eficiente que o mod _ php. Para usar PHP-FPM com Apache:
# Instalar o PHP-FPM sudo apt install php8.3-fpm # Desativar mod_php e ativar proxy_fcgi sudo a2dismod php8.3 sudo a2enmod proxy_fcgi setenvif sudo a2enconf php8.3-fpm # Reiniciar sudo systemctl restart php8.3-fpm sudo systemctl restart apache2
Erros Comuns Após a Atualização do PHP
Fatal error: funções removidas
O PHP 8 removeu diversas funções depreciadas nas versões 7.x. Se um plugin usa alguma delas, você verá erros como:
Fatal error: Uncaught Error: Call to undefined function create_function()
Funções removidas no PHP 8.0 que eram comuns em plugins WordPress:
- create_function() - substituída por funções anônimas (closures)
- each() - substituída por foreach
- money_format() - substituída por NumberFormatter
- Extensão mysql_* - substituída por mysqli_* (já removida no PHP 7.0)
Solução: atualize o plugin para a versão mais recente ou procure uma alternativa compatível.
Deprecation notices
Avisos de deprecação não quebram o site, mas indicam que o código será incompatível em versões futuras:
Deprecated: Return type of MyClass::method() should either be compatible with...
Esses avisos são comuns no PHP 8.1+ e geralmente não causam problemas funcionais. Para ocultá-los em produção, configure no php.ini :
error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
Erro de type mismatch
O PHP 8 é mais rigoroso com tipos. Código que passava null onde era esperada uma string agora gera avisos ou erros:
Fatal error: Uncaught TypeError: strlen(): Argument #1 ($string) must be of type string, null given
Solução: atualize os plugins. Plugins mantidos ativamente já corrigiram esses problemas.
Configurações Recomendadas do php.ini para WordPress
Após instalar o PHP 8, configure o php.ini com valores otimizados para WordPress.
Localização do php.ini
- cPanel/CloudLinux: acessível pela interface Select PHP Version
- Ubuntu + Nginx (PHP-FPM): /etc/php/8.3/fpm/php.ini
- Ubuntu + Apache (mod _ php): /etc/php/8.3/apache2/php.ini
- Ubuntu + Apache (PHP-FPM): /etc/php/8.3/fpm/php.ini
Configurações recomendadas
; Memória e execução memory_limit = 256M max_execution_time = 300 max_input_time = 300 max_input_vars = 3000 ; Upload de arquivos upload_max_filesize = 64M post_max_size = 64M ; Sessões session.gc_maxlifetime = 1440 session.cookie_httponly = 1 session.cookie_secure = 1 ; Segurança expose_php = Off display_errors = Off log_errors = On error_log = /var/log/php/error.log error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE ; Performance realpath_cache_size = 4096K realpath_cache_ttl = 600 ; Timezone date.timezone = America/Sao_Paulo
Configuração do OPcache
O OPcache é essencial para a performance do WordPress com PHP 8. Ele armazena o bytecode compilado dos scripts PHP na memória, eliminando a necessidade de recompilar a cada requisição.
Configuração recomendada para WordPress
Adicione ou edite no php.ini ou em um arquivo separado de configuração do OPcache ( /etc/php/8.3/mods-available/opcache.ini ):
[opcache] opcache.enable = 1 opcache.memory_consumption = 256 opcache.interned_strings_buffer = 16 opcache.max_accelerated_files = 10000 opcache.revalidate_freq = 60 opcache.validate_timestamps = 1 opcache.save_comments = 1 opcache.enable_file_override = 1 ; JIT (PHP 8.0+) opcache.jit = 1255 opcache.jit_buffer_size = 128M
Explicação dos parâmetros
- memory _ consumption: memória reservada para o cache (256 MB é suficiente para a maioria dos sites)
- interned strings buffer: memória para strings internas (16 MB é adequado)
- max accelerated files: número máximo de scripts em cache (10.000 cobre a maioria dos sites WordPress com muitos plugins)
- revalidate _ freq: intervalo em segundos para verificar se os arquivos mudaram (60 segundos em produção)
- validate _ timestamps: se habilitado, o OPcache verifica se os arquivos foram modificados
- save _ comments: necessário para o WordPress e muitos plugins que usam anotações em comentários
- jit: modo de compilação JIT (1255 é o modo otimizado para WordPress)
- jit buffer size: memória reservada para o buffer JIT
Verificando o OPcache
Para verificar se o OPcache está ativo e monitorar seu uso:
php -i | grep opcache
Ou crie um script temporário:
<?php $status = opcache_get_status(); echo 'Memória usada: ' . round($status['memory_usage']['used_memory'] / 1048576, 2) . ' MB' . PHP_EOL; echo 'Memória livre: ' . round($status['memory_usage']['free_memory'] / 1048576, 2) . ' MB' . PHP_EOL; echo 'Scripts em cache: ' . $status['opcache_statistics']['num_cached_scripts'] . PHP_EOL; echo 'Cache hits: ' . $status['opcache_statistics']['hits'] . PHP_EOL; echo 'Cache misses: ' . $status['opcache_statistics']['misses'] . PHP_EOL;
Delete o arquivo após a verificação.
Testando Após a Atualização
Após atualizar o PHP e configurar o servidor, faça uma verificação completa.
Checklist de testes
- Página inicial: carrega normalmente?
- Páginas internas: posts, páginas e categorias estão funcionando?
- Painel administrativo: consegue acessar o wp-admin?
- Saúde do Site: vá em Ferramentas > Saúde do Site e verifique se há alertas
- Formulários: envie um formulário de contato de teste
- WooCommerce (se aplicável): faça um pedido de teste, verifique o checkout
- Cache: limpe o cache do site e verifique se tudo carrega
- Cron jobs: verifique se os agendamentos do WordPress estão funcionando
Verificando a versão do PHP no site
Acesse Ferramentas > Saúde do Site > Informações > Servidor e confirme que a versão do PHP exibida é a nova versão.
Monitorando logs após a atualização
Nos primeiros dias após a atualização, monitore os logs de erro:
# PHP-FPM sudo tail -f /var/log/php8.3-fpm.log # Nginx sudo tail -f /var/log/nginx/error.log # Apache sudo tail -f /var/log/apache2/error.log # WordPress tail -f /var/www/seusite.com/public_html/wp-content/debug.log
Rollback: Voltando para a Versão Anterior
Se a atualização causou problemas que não podem ser resolvidos rapidamente, você pode reverter para a versão anterior do PHP.
No cPanel
Basta repetir o processo de alteração de versão no MultiPHP Manager, selecionando a versão anterior.
No Ubuntu com Nginx
- Verifique se a versão anterior ainda está instalada:
ls /etc/php/
- Edite a configuração do Nginx para apontar para o socket antigo:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
- Reinicie os serviços:
sudo systemctl start php8.2-fpm sudo systemctl restart nginx
No Ubuntu com Apache
sudo a2dismod php8.3 sudo a2enmod php8.2 sudo systemctl restart apache2
Ou, se estiver usando PHP-FPM:
sudo a2disconf php8.3-fpm sudo a2enconf php8.2-fpm sudo systemctl restart php8.2-fpm sudo systemctl restart apache2
Leia Também
Conclusão
Migrar para o PHP 8 é uma das melhores otimizações que você pode fazer no seu WordPress. O ganho de performance, as melhorias de segurança e o suporte de longo prazo justificam o esforço de verificação e configuração.
A chave para uma migração tranquila é o planejamento: verificar compatibilidade antes de atualizar, ter um backup confiável e testar em ambiente de staging sempre que possível.
Se você quer um servidor já configurado com a versão mais recente do PHP, OPcache otimizado e suporte para resolver qualquer incompatibilidade, conheça os planos da HOSTWP . Nossa equipe mantém a infraestrutura atualizada e configurada especificamente para WordPress, para que você se concentre no conteúdo do seu site. Conheça a HOSTWP e tenha a melhor performance para o seu WordPress.