Como mudar o PHP handler no WHM pelo MultiPHP Manager, ativar o PHP-FPM para todos os domínios e fazer o mesmo pela linha de comando.
O PHP handler é a forma como o servidor web entrega os scripts PHP para serem executados. Ele define com qual usuário o PHP roda, quanto de memória o servidor gasta e se diretivas como php_value funcionam no arquivo htaccess. A antiga tela Configure PHP and suEXEC e o comando rebuild_phpconf 5 none suphp 1 são do EasyApache 3 e não existem mais. Hoje tudo fica no MultiPHP Manager.
Qual PHP handler usar no cPanel
| Handler | Como funciona | Quando usar |
|---|---|---|
| PHP-FPM | Processos PHP permanentes por conta, com OPcache, falando com o Apache via FastCGI. Roda como o usuário da conta. | Recomendado para quase todos os servidores. |
| CGI | Abre um processo PHP a cada requisição; com suEXEC, roda como o usuário. Não aceita php_value no htaccess. | Compatibilidade, sites de pouco acesso. |
| LSAPI | Handler da LiteSpeed (mod_lsapi), rápido e estável. | Servidores com CloudLinux. |
| suPHP | Roda como o usuário, mas cria um processo por requisição e não aproveita OPcache. | Legado. Evite. |
| DSO | PHP embutido no Apache, rodando como nobody. | Não suportado pelo cPanel com PHP 8.0 ou superior. |
Em servidores com muitas contas, trocar CGI por PHP-FPM costuma reduzir bastante o consumo de memória e deixar os sites mais rápidos, porque os processos são reaproveitados em vez de recriados a cada acesso.
lsphp da LiteSpeed e as opções de handler do MultiPHP Manager ficam bloqueadas. Este artigo vale para servidores com Apache.Como mudar o PHP handler no WHM
- Abra o MultiPHP Manager. Vá em WHM » Software » MultiPHP Manager, aba System Settings.
- Escolha o handler de cada versão. Na seção PHP Handlers, clique em Edit ao lado da versão (por exemplo,
ea-php83), selecione o handler e clique em Apply. O Apache é reiniciado automaticamente. - Ative o PHP-FPM. Ainda em System Settings, na seção PHP-FPM, ligue a opção para que contas novas já nasçam com PHP-FPM e use Enable PHP-FPM for all domains para converter os domínios que já existem.
- Ajuste os limites do PHP-FPM em System PHP-FPM Settings. Os padrões são Max Children 5 (processos por domínio), Max Requests 20 e Process Idle Timeout 10 segundos. Aumente o Max Children só para sites que realmente precisam: cada processo consome memória.
- Exceções por domínio. Na aba User Domain Settings você liga ou desliga o PHP-FPM e escolhe a versão do PHP de cada domínio.
Como mudar o PHP handler pela linha de comando
Ver a configuração atual e os handlers disponíveis:
/usr/local/cpanel/bin/rebuild_phpconf --current
/usr/local/cpanel/bin/rebuild_phpconf --available
Simular a troca do handler do PHP 8.3 para CGI, sem aplicar:
/usr/local/cpanel/bin/rebuild_phpconf --dryrun --ea-php83=cgi
Aplicar a troca e definir o PHP 8.3 como versão padrão do servidor:
/usr/local/cpanel/bin/rebuild_phpconf --default=ea-php83 --ea-php83=cgi
A mesma consulta pela API do WHM, útil em scripts:
whmapi1 php_get_handlers
Depois de mexer em configurações do PHP-FPM, reinicie o serviço:
/usr/local/cpanel/scripts/restartsrv_apache_php_fpm
php_value e php_flag no arquivo htaccess não funcionam. Use o MultiPHP INI Editor do cPanel ou do WHM. Veja como alterar a versão, extensões e configurações do PHP no cPanel.Problemas comuns
Erro 500 depois de mudar o handler
O arquivo htaccess do site tem php_value ou php_flag, que não funcionam com PHP-FPM nem com CGI. Remova essas linhas e mova as configurações para o MultiPHP INI Editor. Veja também erro 500: causas e como resolver.
Site lento ou erro 503 com PHP-FPM
O domínio atingiu o Max Children. Aumente o valor só para esse domínio em User Domain Settings e acompanhe o consumo de memória.
Erros de permissão ao enviar arquivos
Com PHP-FPM, CGI ou LSAPI o PHP roda como o usuário da conta; arquivos que ficaram com dono nobody no tempo do DSO precisam ser corrigidos. Veja como corrigir permissões e dono dos arquivos de uma conta cPanel.