Alterar o tempo de execução do php sem ter acesso ao php.ini

Este tutorial sobre max_execution_time do PHP é simples e direto, onde mostro como alterar  o tempo de execução dos scripts PHP sem precisar ter acesso ao arquivo de configuração do PHP, o php.ini.

Trago como exemplo a seguinte situação, onde precisei em uma aplicação de upload de imagens que desenvolvi tempos atrás para um cliente que possuía um plano de hospedagem comum, a qual senti uma dificuldade em relação ao tempo de execução dos scripts, que por padrão não ultrapassa 30 segundos. Imagine então enviar simplesmente 10 imagens, mesmo que com apenas 100kb cada ou ainda a possibilidade de executar uma tarefa em mais de 100 imagens dentro de uma pasta no servidor… :| sem chances com míseros 30 segundos.

Existe a diretiva chamada max_execution_time que por padrão está setada com o valor 30 referente à 30 segundos e que se você tiver acesso ao php.ini é tranquilo e poderá alterar ali mesmo, porém em hospedagem compartilhada não adianta nem solicitar ao suporte para alterar, pois eles não o farão.

Vou ajudar a resolver este problema de forma bem simples utilizando a função do php chamada ini_set().
A primeira coisa é procurar saber se a diretiva safe_mode no php.ini está off, pois se estiver on, não funcionarão as dicas deste tutorial.

Sabendo então que a diretiva está off, bastará incluir no topo dos teus arquivos a seguinte linha:

ini_set('max_execution_time', 60);

Desta forma altera o tempo padrão para 60 segundos, mas você pode alterar para o tempo que quiser.

Se quiser alterar para um tempo ilimitado, basta definir da seguinte forma:

ini_set('max_execution_time', 0);

Observação: Não recomendo um tempo ilimitado, mas fica por sua própria conta e risco a utilização nesse modo.

Se não sabe se a diretiva no seu php.ini está como off ou on, recomendo criar um arquivo php que poderá nomea-lo apenas como info.php e no conteúdo deste arquivo coloque :

<?php phpinfo(); ?>

Depois envie para raiz do servidor de hospedagem e acesse pelo seu navegador web preferido (recomendo Firefox) o seguinte endereço:

http://teusite/info.php

Aproveite para analisar com atenção essas informações, buscando saber o que significa tudo isso, mas o que nos interessa neste momento é a diretiva safe_mode, sendo assim utilize as opções de teu navegador para achar a palavra safe_mode… (no Firefox é F3 para aparecer a caixa de busca)… se na primeira busca não achar exatamente o que procura, pressione próximo até achar e veja o valor definido para safe_mode.

Espero ter ajudado com esta simples explicação sobre a diretiva max_execution_time do PHP.
Qualquer coisa que tenha faltado ou dúvida que tenha ficado, poste um comentário mais abaixo e eu ajudo no que for de meu entendimento.

Bons estudos!

Tópicos relacionandos

Publicado por

Razor

Conhecedor das artes gráficas, amante de design web, amigo íntimo do desenvolvimento web, com a pretensão de aprender e ajudar à quem busca conhecimento, me faço presente. =)

8 comentários sobre “Alterar o tempo de execução do php sem ter acesso ao php.ini”

  1. Antes eu sempre usava o ini_set(), hoje uso o .htaccess quando o servidor é apache. No .htaccess a gente tem um poder um pouco maior, é possível por exemplo desativar o magic_quotes. Vale a pena um tutorial sobre essa maneira também… :)

    1. Legal @muller, tua colaboração é sempre muito bem vinda, farei esse tuto que tu disse em breve, é uma ótima dica para os quem deseja definir um novo valor para max_execution_time para todo um sistema. A intensão deste tuto era para um arquivo em específico e manter o max_time_execution padrão para os demais arquivos… de uma forma bem simples e fácil pra quem não tem intimidade com .htacces, mas a tua dica é ótima e a qualquer momento publico algo do tipo, bem básico.
      Saiba também que tens a liberdade de faze-lo e eu publico em seu credito.
      Grande abraço

    1. Olá @Silvio.
      Não etendi a sua dúvida :| Se estiver OFF… maravilha, pois só OFF que irá funcionar.
      Se estiver ON não irá funcionar as dicas deste tutorial.
      Se SAFE MODE estiver ON no servidor o qual vc utiliza… mude de provedor, pois há diversas formas de deixar um SERVER seguro sem precisar engessa-lo.
      Bons estudos

    1. Olá @Caleb.
      Não eu não uso esse server free que mencionou não.
      Também não sei ao certo se seria possível efetuar essa alteração.
      Deves solicitar um atendimento no suporte deste serviço.
      Bons estudos.

  2. e se eu quizer alterar o upload_max_filesize?

    como seria >

    ini_set(‘upload_max_filesize’, 15m); ou

    ini_set(‘upload_max_filesize’, ’15m’);

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *