Resolver problemas
Maximum execution time of X seconds exceeded in x.php
A mensagem:
Maximum execution time of X seconds exceeded in x.php
confirma que o processo atingiu o limite max_execution_time do PHP. O ficheiro e a linha indicam onde o temporizador se esgotou, mas não demonstram por si sós que componente consumiu o tempo.
Reproduza a operação exata e consulte primeiro o registo da aplicação e do PHP. Se se tratar de um pedido lento reproduzível, utilize o PHP X-Ray para verificar se o tempo se concentra numa consulta SQL, numa chamada externa, numa função ou num componente concreto. Exclua também ciclos, novas tentativas e volumes de dados inesperados.
Só aumente o limite quando a operação for legítima, delimitada e precisar razoavelmente de mais tempo. Verifique que versão do PHP executa o caminho, aceda a cPanel > Select PHP Version > Options e defina max_execution_time no menor valor finito que permita concluir o teste. A alteração afeta todos os sites que utilizem essa versão.
Não aumente o valor progressivamente até o erro desaparecer e não o defina sem limite. O PHP utiliza este temporizador como proteção contra scripts defeituosos. Além disso, o servidor web e outros componentes podem aplicar tempos de espera independentes.
Depois do teste, restaure o valor anterior. Se o processo voltar a esgotar um valor razoável, corrija a operação ou o componente identificado em vez de continuar a aumentá-lo. Se suspeitar de uma limitação de recursos, verifique as falhas registadas de CPU, memória, entrada, IO ou processos: um consumo elevado sem uma falha de limite não demonstra que esse limite tenha terminado ou tornado lento o pedido.
Tempo do PHP e tempo total do pedido
Em sistemas Unix, max_execution_time não mede necessariamente todo o tempo de relógio decorrido: as esperas de certas operações externas podem ficar fora da sua contagem. No Windows o seu comportamento é diferente. Por isso, um tempo total observado no navegador não se compara diretamente com esse limite. Consulte a definição do PHP.
Para importações ou trabalhos longos, considere dividir o trabalho em lotes ou executá-lo através de uma tarefa CLI compatível, com controlo de erros e de progresso. O CLI também pode ter limites próprios e não evita as quotas do alojamento. Antes de repetir uma operação interrompida, verifique que dados já foram guardados para não os duplicar.
Também lhe pode ser útil
- Erro PHP ao usar require_once, require, include_once ou include Interprete a mensagem completa quando o PHP não consegue abrir um ficheiro e verifique caminho, perm...
- Ativar o registo de erros do PHP a partir do cPanel Ative temporariamente log_errors para a versão efetiva a partir do seletor de PHP do cPanel, sem mos...
- Ativar o registo de erros do PHP a partir do ficheiro .htaccess Configure o .htaccess para registar temporariamente os erros PHP fora de public_html, sem os revelar...
- Depurar erros em aplicações ou ficheiros PHP Diagnostique um ecrã em branco ou um erro 500 reproduzindo a falha e consultando primeiro o registo...
Algo não bate certo ou mudou? Diga-nos e revemos.