Aumentando tempo de execução (max_execution_time) do PHP

Em algum momento na vida de programador você vai se deparar com o seguinte erro Maximum execution time of 30 seconds exceeded in ...


Isso acontece porque o script que você está tentando executar esta demorando demais, mais que o limite de tempo de execução configurado. Pode ser por causa de uma consulta sql muito demorada, um ação que executa variadas funções, muitos processos rodando ao mesmo tempo no servidor ou até mesmo "código mal escrito".

O limite default do php para executar um script é de 30 segundos. Mas você pode aumentar esse tempo de acordo com  a sua necessidade.




Nas configurações do php no arquivo php.ini estão setadas as configurações de tempo máximo para execução  de um script.

Abra esse arquivo e procure pela linha "max_execution_time" você vai encontrar algo mais ou menos assim:

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60    ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB)

Mude o número que está em vermelho para a quantidade de segundos que você deseja que seja o máximo para execusão de um script php no seu servidor.

Agora é só salvar e dar um restart no seu servidor para pegar as novas configurações.

Não há limite para o tempo de execução de um script.... o limite é o bom senso!
Lembre-se que o usuario pode não gostar de esperar "2 minutos" (quero dizer aqui, esperar muito) para o php executar alguma funcionalidade do seu sistema.

Uma dica, mais valiosa que essa talvez, é você descobrir porque o seu script demora tanto tempo pra ser executado e aperfeiçoa-lo para demorar o minimo de tempo possivel.

3 comentários:

Daniel disse...

Funcionou perfeitamente!!
Eu tive que fazer uma alteração para execultar um script sinistro...

Abel disse...

Funciona mesmo!
Vlw man!

Paulo Henrique disse...

Muito bom, isso me ajudou!

Postar um comentário