Configure o cron do WHMCS no cPanel para rodar a cada 5 minutos com php -q crons/cron.php e resolva os avisos do Automation Status e do System Health.
O cron é o que faz o WHMCS trabalhar sozinho: gerar faturas, mandar lembretes, aplicar multas, suspender e reativar serviços, fechar tickets inativos e checar atualizações. Sem ele, nada disso acontece, e o painel mostra um alerta vermelho de automação. A WHMCS recomenda rodar o cron a cada 5 minutos, e no mínimo uma vez por hora.
Antes de começar
- Acesso de administrador ao WHMCS e ao cPanel da conta onde ele está instalado.
- A mesma versão de PHP no site e no cron. O WHMCS 9.0 exige PHP 8.2 ou mais novo e ionCube Loader compatível.
Pegue o comando certo no WHMCS
- Abra Configuration » System Settings » Automation Settings (Configuration é o ícone de chave inglesa no topo do painel).
- Clique no primeiro selo do topo da página. Aparece o campo Cron Command com o comando completo da sua instalação.
- Copie pelo ícone de copiar. O comando tem este formato:
php -q /home/usuario/crons/cron.php
Nas versões antigas o arquivo ficava em admin/cron.php. Hoje o certo é crons/cron.php; o caminho antigo é só um apelido mantido por compatibilidade.
Como criar o cron no cPanel
- No cPanel, abra Avançado » Cron Jobs (Trabalhos Cron).
- Em Configurações comuns, escolha a opção de uma vez a cada cinco minutos (Once Per Five Minutes). Os campos ficam
*/5 * * * *. - Cole o comando no campo Comando.
- Clique em Adicionar novo trabalho cron (Add New Cron Job).
Tire a pasta crons de dentro do public_html
A WHMCS recomenda mover a pasta crons para fora da pasta pública do site, onde ninguém consegue acessá-la pelo navegador.
- Mova a pasta inteira pelo Gerenciador de Arquivos, por exemplo de
/home/usuario/public_html/whmcs/cronspara/home/usuario/whmcs_crons. - Na pasta nova, renomeie
config.php.newparaconfig.php, abra e ajuste a linha do caminho do WHMCS, tirando as duas barras do começo:$whmcspath = '/home/usuario/public_html/whmcs/'; - No
configuration.phpdo WHMCS, acrescente no fim:$crons_dir = '/home/usuario/whmcs_crons/'; - Atualize o comando do cron para o caminho novo:
php -q /home/usuario/whmcs_crons/cron.php
crons padrão para a pasta personalizada. Se esquecer, a automação para de funcionar depois do update.Confira se o cron está rodando
- Utilities » Automation Status: selo verde Ok significa que o cron rodou nas últimas 2 horas e as tarefas diárias rodaram nas últimas 24 horas. Amarelo (Warning) indica que o cron já funcionou, mas não roda há mais de 2 horas. Vermelho (Error) indica que ele nunca rodou ou que as tarefas diárias falharam.
- Configuration » System Health: mostra os alertas Cron PHP Version Mismatch e Cron PHP Timezone quando o PHP do cron é diferente do PHP do site.
- Time of Day, em Automation Settings, é a hora em que as tarefas diárias rodam. O cron precisa estar ativo nessa hora.
Como rodar o cron na mão para testar
Pelo Terminal do cPanel (ou SSH), rode o mesmo comando do cron com mais detalhes na saída:
php -q /home/usuario/crons/cron.php all -vv
Para só conferir a versão do WHMCS que o PHP de linha de comando enxerga:
php -q /home/usuario/crons/cron.php -V
Não use a opção --force para "destravar" o cron: ela executa as tarefas mesmo fora da hora ou com outra execução em andamento.
E pelo navegador?
O teste antigo de abrir seuwhmcs/admin/cron.php no navegador não serve mais. Desde as versões 8.13.6 e 9.0.7 (agosto de 2026), o WHMCS bloqueia chamadas HTTP ao cron com 403 Access Denied. Só funciona se o IP do agendador externo for liberado em Configuration » System Settings » General Settings, aba Security, campo Cron HTTP Access Restriction. Prefira sempre o cron do cPanel.
Problemas comuns
The system cron has not run within the past two hours
O cron não está rodando: caminho errado, linha apagada ou frequência menor que uma vez por hora. Confira a linha em Cron Jobs e rode o comando à mão para ver o erro.
Could not open input file
O caminho do cron.php está errado, geralmente depois de mover a pasta crons ou de reinstalar. Confirme o caminho no Gerenciador de Arquivos e copie de novo o comando em Automation Settings.
Cron PHP Version Mismatch ou erro do ionCube só no cron
O site usa uma versão de PHP e o cron outra. Em contas com Select PHP Version (CloudLinux), o PHP do cron segue a versão escolhida ali. Se o site usa uma versão definida no MultiPHP Manager, chame o PHP dessa versão pelo caminho completo:
/opt/cpanel/ea-php83/root/usr/bin/php -q /home/usuario/crons/cron.php
Cron PHP Timezone
O fuso do PHP do cron é diferente do fuso do site, e as tarefas rodam fora de hora. Veja como alterar o timezone do WHMCS.
Preciso do cron do pop.php?
Só se você importa e-mails para o suporte pelo protocolo POP3, com php -q /home/usuario/crons/pop.php a cada 5 minutos. A WHMCS recomenda usar o encaminhamento de e-mail (piping) no lugar.