Newsgroup: it.comp.www.php
Titolo: Maximum execution time

Devo caricare un file contenente una serie di INSERT in un database MySQL di
dimensioni
notevoli (1.4MB) ma benchč io abbia variato a piacere i numero di secondi di
esecuzione di uno script con la funzione
ini_set('max_execution_time', 3600);
il server mi restituisce sempre il messaggio:
Fatal error: Maximum execution time of 30 seconds exceeded in
http://www.miosito.com/admin/uploadfile.php
 on line ...
Sul server remoto ho:
Windows NT 5.0 build 2195
Apache/1.3.24 (Win32) PHP/4.2.0 MySQL/3.23.49
e dal phpinfo(); leggo
Timeout 300
KeepAliveTimeout 15


http://www.miosito.com/admin/uploadfile.php
 on line ...
utilizza:
set_time_limit(0);
-- 
http://e-0.org


Ho usato anche set_time_limit(0); ma il risultato è sempre lo stesso.
Dove potrebbe esserci qualche altro timeout? MySQL?
Esistono blocchi impostati sul server in modo da non poter cambiare questi
valori?
Tra l'altro ho provato a fare l'upload anche con PhpMyAdmin ma mi
restituisce lo stesso errore
e anche li avevo
$cfgExecTimeLimit= 0;
come parametro passato a
set_time_limit($cfgExecTimeLimit);
nello script di read dump
.

Ho usato anche set_time_limit(0); ma il risultato è sempre lo stesso.
il manuale dice questo:
set_time_limit() has no effect when PHP is running in safe mode. There
is no workaround other than turning off safe mode or changing the time
limit in the php.ini.
quindi, se hai attivato il safe mode, non hai modo (se non cambiando
il time limit in php.ini) di cambiare tale tempo.
-- 
http://e-0.org

Da
phpinfo();
leggo safe mode Off sia come Local Value che come Master Value.
Non so più come fare :'(
A parte spezzare il file in file più piccoli ovviamente.

Non so più come fare :'(
Calma e sangue freddo :)
Sempre nel manuale
(
http://it2.php.net/manual/en/function.set-time-limit.php
), nei
commenti degli utenti leggo:
******************
You may also need to look at Apache's timeout setting (Win32 version
for me), I changed max execution time value in php.ini, and still got
stopped by Apache's timeout value in the httpd.conf file.
******************
cioe' ti devi andare a cambiare la direttiva Timeout in http.conf
-- 
http://e-0.org

Ho letto che
Any time spent on activity that happens outside the execution of the script
such as system calls using system(), stream operations, database queries,
etc. is not included when determining the maximum time that the script has
been running
In effetti il mio file č formato da un elenco di INSERT in un dbase quindi
il tempo dello script dovrebbe essere irrilevante.
Nell'info perň mi risulta che il serve ha come timeouts
Connection: 300 - Keep-Alive: 15
Non ho capito bene quale dei due parametri sia quello sensibile per il mio
problema.
Mi sembrerebbe KeepAliveTimeout visto che una volta inviato il file come
POST di un form ci vuole un po' di tempo per caricare 1.4 MB anche con
l'ADSL.
Ma di certo non piů dei 300 sec impostati in TimeOut.
Di solito mi restitruisce l'errore dopo circa un minuto.

Di solito mi restitruisce l'errore dopo circa un minuto.
ah, se l'upload e' lungo, allora potrebbe essere la direttiva:
***********************
max_input_time integer
This sets the maximum time in seconds a script is allowed to receive
input data, like POST, GET and file uploads. The default setting is
60.
***********************
http://it2.php.net/manual/en/ref.info.php#ini.max-input-time
-- 
http://e-0.org

ora ho:
set_time_limit(0);
ini_set('max_input_time' ,3600);
ma non cambia nulla. Credo proprio che senza intervenire sui parametri di
http.conf non si possa fare nulla contro il fatidico
Fatal error: Maximum execution time of 30 seconds exceeded in...
Purtroppo il server del sito in questione é ospitato preso un ente pubblico
e nonostante io scriva una mail al giorno da piů di 10 giorni sollecitando
la modifica dei timeouts non ho ancora avuto risposta :'(
Grazie comunque per il grande aiuto che mi dai
Ciao