desculpe, não tenho ideia do que você quer dizer com isso :(
Hannes
@Aamir, você precisa ter permissão do seu host para alterar a configuração do seu servidor da web. Freqüentemente, eles não permitem que você mude coisas assim.
hellozimi
posso alterar upload_max_filesize e max_execution_time no arquivo htaccess?
Aamir
2
@Col, eu discordo, ele quer fazer as alterações na hora e não em todo o aplicativo, então ele pergunta como ele pode fazer isso. E mesmo se ele perguntasse como ele pode simplesmente mudar algumas coisas no php.ini, pode ser uma pergunta de novato, mas uma pergunta legítima da mesma forma.
Hannes
1
@IulianOnofrei tudo bem, só senti a necessidade de apontar isso: D, mas talvez se você não sabe o que é ainda é bom procurar… "Quem não pode aprender com a história está condenado a repetir" e tudo mais …
Hannes
56
Você deve ser capaz de fazer durante a execução também usando
Ter um limite de tempo de execução global BAIXO é principalmente uma boa ideia por motivos de desempenho em aplicativos não tão confiáveis. Portanto, você pode permitir que apenas esses scripts sejam executados por mais tempo do que absolutamente necessário.
ps: Não se esqueça de post_max_size e upload_max_filesize (como a primeira resposta disse allready)
set_time_limit () não tem nada a ver com uploads de arquivos
Seu senso comum
1
Isso não é preciso o suficiente, coronel Shrapnel. Enquanto em ambientes Unix o tempo máximo de execução é comparado ao tempo de CPU cumulativo usado pelo php-thread, em sistemas Windows o tempo absoluto é usado. O upload é geralmente "tempo ocioso" (IO-Wait). Mas, como você vê, os uploads podem ser interrompidos quando demoram muito.
Christoph Strasen
4
Se você estiver usando o servidor Microsoft IIS , além das configurações de php.ini mencionadas por outros, pode ser necessário aumentar as configurações de tempo limite de execução para o aplicativo PHP FastCGI no Gerenciador de servidor IIS:
Etapa 1) Abra o Gerenciador do Servidor IIS (geralmente em Gerenciador do Servidor no Menu Iniciar e, em seguida, Gerenciador de Ferramentas / Serviços de Informações da Internet (IIS) ).
Etapa 2) Clique na conexão principal (não específica para nenhum domínio em particular).
Etapa 4) Aí, clique direito do mouse no aplicativo PHP e selecione Editar ... .
Etapa 5) Verifique os tempos limite (mostrados abaixo).
No meu caso, os tempos limite padrão aqui eram 70 e 90 segundos; o primeiro estava causando um 500 Erro Interno do Servidor em scripts PHP que demoravam mais de 70 segundos.
Você cometeu um erro de digitação: ini_set ('max_input_time', '200M') - o conjunto de valores precisa ser um int, como ini_set ('max_input_time', '200')
Eu sei que você está perguntando especificamente sobre o tempo limite do PHP, mas o que ninguém mais parece ter mencionado é que também pode haver um tempo limite no servidor da Web e pode ser muito semelhante ao tempo limite do PHP.
Então, se você tentou:
Aumentando o tempo limite no php.ini adicionando uma linha: max_execution_time = {número de segundos, ou seja, 60 por um minuto}
Aumentando o tempo limite em seu próprio script adicionando: ini_set ('max_execution_time', '{número de segundos, ou seja, 60 por um minuto}');
E você verificou com a função phpinfo () que max_execution_time foi realmente aumentado, então você pode querer tentar adicionar isso a .htaccess para garantir que o Apache não expire:
Se você não pode editar o php.ini (em seu servidor, por exemplo), você pode tentar alterar os parâmetros do php.ini de dentro do seu código php. Experimentar:
ini_set('max_execution_time','NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');
Se isso não funcionar, tente definir 'set_time_limit' da mesma forma, além disso, eu diria que sua única opção é entrar em contato com seu host. Essas configurações não podem ser modificadas no modo de segurança.
Hannes entendeu isso um minuto antes de eu postar, e aponta corretamente que set_time_limit () não deve ser definido por ini_set, como declarado nesta resposta, mas colocando os segundos entre colchetes. Ele votou hannes up.
John
1
Teste se você está no modo de segurança - se não estiver - defina o limite de tempo (valor local) para o que você deseja:
if(!ini_get('safe_mode')){
echo "safe mode off";
set_time_limit(180);// seconds
phpinfo();// see 'max_execution_time'}
* Você não pode definir o limite de tempo desta forma se o modo de segurança estiver ativado.
opcional: se você definir a configuração sobre php.ini, mas ainda não conseguir fazer upload
- esta é uma função php para verificar o código de erro
$error_type =[];
$error_type[0]="There is no error";
$error_type[1]="The uploaded file exceeds the upload_max_filesize directive in php.ini.";
$error_type[2]="The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
$error_type[3]="The uploaded file was only partially uploaded.";
$error_type[4]="No file was uploaded.";//$error_type["5"] = "";
$error_type[6]="Missing a temporary folder. Introduced in PHP 5.0.3.";
$error_type[7]="Failed to write file to disk. Introduced in PHP 5.1.0.";
$error_type[8]="A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.";//------------------------------//--> show msg error.
$status_code = $_FILES["uploadfile"]["error"];if($status_code !=0){
echo $error_type[$status_code];exit;}
Para realmente aumentar o limite de tempo, prefiro primeiro obter o valor atual. set_time_limitnem sempre aumenta o limite de tempo. Se o valor atual (por exemplo, de php.iniou anteriormente definido) for maior do que o valor usado na chamada atual de set_time_limit, ele diminuirá o limite de tempo!
Então, o que há com um pequeno ajudante como este?
/**
* @param int $seconds Time in seconds
* @return bool
*/function increase_time_limit(int $seconds):bool{return set_time_limit(max(
ini_get('max_execution_time'), $seconds
));}// somewhere else in your code
increase_time_limit(180);
Respostas:
Você precisa alterar algumas configurações em seu php.ini:
A localização do seu PHP.ini depende do seu ambiente, mais informações: http://php.net/manual/en/ini.list.php
fonte
Você deve ser capaz de fazer durante a execução também usando
set_time_limit(100);
http://php.net/manual/en/function.set-time-limit.php
ou em seu vhost-config
php_admin_value max_execution_time 10000
Ter um limite de tempo de execução global BAIXO é principalmente uma boa ideia por motivos de desempenho em aplicativos não tão confiáveis. Portanto, você pode permitir que apenas esses scripts sejam executados por mais tempo do que absolutamente necessário.
ps: Não se esqueça de post_max_size e upload_max_filesize (como a primeira resposta disse allready)
fonte
Para completar a resposta de Hannes.
Você precisa alterar algumas configurações em seu php.ini:
Se alguém quiser colocar em ilimitado (não sei por que, mas se quiser), você pode definir o tempo para 0:
Você precisa alterar algumas configurações em seu php.ini:
E se você não sabe onde está o seu php.ini. Você pode fazer um arquivo "name.php" no seu servidor e colocar:
E no seu site, você pode ver a configuração do seu php.ini e está marcado onde está.
Editar em 9 de janeiro de 2015:
Se você não consegue acessar seu php.ini, você tem mais duas opções.
Você pode definir esta linha diretamente no seu arquivo "name.php", mas não encontro upload_max_filesize para esta opção:
Ou em ".htaccess"
fonte
se o que você precisa fazer é específico apenas para 1 ou 2 páginas, sugiro usar set_time_limit para que não afete todo o aplicativo.
mas é claro que esses 2 valores (post_max_size & upload_max_filesize) estão sujeitos a investigação.
você pode configurá-lo através da função ini_set
ou diretamente no arquivo php.ini como a resposta acima de Hannes, ou mesmo configurá-lo em .htaccess como abaixo
fonte
Além das respostas acima, você pode usar a
set_time_limit()
função:http://php.net/manual/en/function.set-time-limit.php
passar
0
como um argumento fará com que seu script seja executado sem limite de tempo.fonte
Se você estiver usando o servidor Microsoft IIS , além das configurações de php.ini mencionadas por outros, pode ser necessário aumentar as configurações de tempo limite de execução para o aplicativo PHP FastCGI no Gerenciador de servidor IIS:
Etapa 1) Abra o Gerenciador do Servidor IIS (geralmente em Gerenciador do Servidor no Menu Iniciar e, em seguida, Gerenciador de Ferramentas / Serviços de Informações da Internet (IIS) ).
Etapa 2) Clique na conexão principal (não específica para nenhum domínio em particular).
Etapa 3) Na seção IIS , encontre configurações FastCGI (mostrado abaixo).
Etapa 4) Aí, clique direito do mouse no aplicativo PHP e selecione Editar ... .
Etapa 5) Verifique os tempos limite (mostrados abaixo).
No meu caso, os tempos limite padrão aqui eram 70 e 90 segundos; o primeiro estava causando um 500 Erro Interno do Servidor em scripts PHP que demoravam mais de 70 segundos.
fonte
Você cometeu um erro de digitação: ini_set ('max_input_time', '200M') - o conjunto de valores precisa ser um int, como ini_set ('max_input_time', '200')
fonte
Eu sei que você está perguntando especificamente sobre o tempo limite do PHP, mas o que ninguém mais parece ter mencionado é que também pode haver um tempo limite no servidor da Web e pode ser muito semelhante ao tempo limite do PHP.
Então, se você tentou:
E você verificou com a função phpinfo () que max_execution_time foi realmente aumentado, então você pode querer tentar adicionar isso a .htaccess para garantir que o Apache não expire:
Mais informações aqui: https://www.antropy.co.uk/blog/php-script-keeps-timing-out-despite-ini-set/
fonte
Primeiro verifique o
php.ini
caminho do arquivophpinfo()
; e, em seguida, alterou osPHP.INI
parâmetros:Apache reiniciado
Nota : você também pode usar o comando para localizar
php.ini
no Linuxfonte
Se você não pode editar o php.ini (em seu servidor, por exemplo), você pode tentar alterar os parâmetros do php.ini de dentro do seu código php. Experimentar:
Se isso não funcionar, tente definir 'set_time_limit' da mesma forma, além disso, eu diria que sua única opção é entrar em contato com seu host. Essas configurações não podem ser modificadas no modo de segurança.
fonte
Teste se você está no modo de segurança - se não estiver - defina o limite de tempo (valor local) para o que você deseja:
* Você não pode definir o limite de tempo desta forma se o modo de segurança estiver ativado.
fonte
opcional: se você definir a configuração sobre php.ini, mas ainda não conseguir fazer upload
- esta é uma função php para verificar o código de erro
fonte
Você também pode definir um tempo máximo de execução em seu
.htaccess
arquivo:fonte
Para realmente aumentar o limite de tempo, prefiro primeiro obter o valor atual.
set_time_limit
nem sempre aumenta o limite de tempo. Se o valor atual (por exemplo, dephp.ini
ou anteriormente definido) for maior do que o valor usado na chamada atual deset_time_limit
, ele diminuirá o limite de tempo!Então, o que há com um pequeno ajudante como este?
Veja também: Obtenha max_execution_time no script PHP
fonte