Em Cron Jobs, no cPanel, o comando é o caminho completo do PHP, um espaço, e o caminho completo do script: /opt/alt/php82/usr/bin/php /home/SUACONTA/scripts/tarefa.php. Duas coisas dão cabo da maioria das tarefas que “não correm”: caminhos relativos e o PHP errado. Para o que é o cron em si, veja tarefas agendadas.
Montar a tarefa
| 1 |
Guarde o script fora da pasta pública, por exemplo numa pasta scripts ao lado de public_html. Um script de tarefas dentro do site pode ser chamado por qualquer pessoa pelo navegador.
|
|
| 2 |
Escolha o PHP. O caminho tem a forma /opt/alt/php82/usr/bin/php, trocando 82 pela versão do projecto (sem o ponto). Não escreva só php: o cron pode usar outra versão que não a da sua pasta.
|
|
| 3 |
No cPanel, secção Advanced, abra Cron Jobs. Escolha a frequência e cole o comando completo.
|
|
| 4 |
Guarde o resultado num ficheiro. Acrescente no fim >> /home/SUACONTA/scripts/tarefa.log 2>&1. Sem isto, o cPanel envia a saída por e-mail ou perde-a.
|
|
| 5 |
Espere pela primeira execução e abra o ficheiro de registo. Se estiver vazio e o script devia escrever algo, a tarefa não correu.
|
|
Uma linha completa fica assim:
/opt/alt/php82/usr/bin/php /home/SUACONTA/scripts/tarefa.php >> /home/SUACONTA/scripts/tarefa.log 2>&1
O que muda entre o navegador e o cron
| No navegador |
No cron |
| Há um pedido web: $_SERVER, $_GET e os cabeçalhos existem. |
Não há pedido nenhum. Essas variáveis vêm vazias ou nem existem. |
| A pasta de trabalho é a do script. |
A pasta de trabalho é outra. Use __DIR__ nos caminhos de require e de ficheiros. |
| Há um tempo máximo por pedido. |
Na linha de comandos o limite de tempo costuma ser maior, mas a memória e os limites da conta continuam a valer. |
| A configuração é a da pasta. |
A configuração é a do PHP de linha de comandos dessa versão. Um valor posto só no .user.ini da pasta do site pode não valer aqui. |
|
A hora é a do servidor, fuso Africa/Maputo (UTC+02:00). Uma tarefa “às 8” corre às 8 nessa hora, que pode não ser a sua. Um % dentro do comando tem de se escrever \% ou o cron corta a linha: ponha a lógica com datas dentro do script.
|
|
Não faça uma tarefa por minuto “só para ver”. Cada execução gasta processos e memória da conta (veja os limites). Escolha a frequência que o trabalho pede e meça o tempo que o script leva.
|
|
A tarefa foi criada, o ficheiro de registo diz um erro e não percebe qual? Envie-nos a linha do cron e o texto do registo.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |