2011-03-02 27 views
302

estoy descargando un archivo JSON desde una fuente en línea y como cuando funciona a través del lazo que estoy recibiendo este error:Fatal error: El tiempo máximo de ejecución de 30 segundos superó

Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\temp\fetch.php on line 24

+9

posible duplicado de [Tiempo máximo de ejecución de 60 segundos excedido] (http://stackoverflow.com/questions/2202355/maximum-execution-time-of-60-seconds-exceeded) que es un duplicado de otros tres ya. Por favor usa la función de búsqueda antes de preguntar. – Gordon

+0

@Gordon lo tendrá en cuenta la próxima vez –

+3

El documento de pastbin ahora también falta :( – dsummersl

Respuesta

537

su bucle podría ser interminable. Si no es así, puede extender el tiempo máximo de ejecución de esta manera:

ini_set('max_execution_time', 300); //300 seconds = 5 minutes
+2

Gracias. no, tiene solo 300 bucles de desconexión :) –

+67

set_time_limit (300) se puede usar para extender temporalmente el límite de tiempo. – Omn

+0

¿Está configurado solo para esa secuencia de comandos o afectará a todas las demás secuencias de comandos ejecutadas después de esta en el mismo servidor? – Rao

15

Su secuencia de comandos está expirando. Eche un vistazo a la función set_time_limit() para aumentar el tiempo de ejecución. O el perfil de la secuencia de comandos para hacer que se ejecute más rápido :)

+0

puede explicar lo que quiere decir con el perfil de la secuencia de comandos –

+1

@HarshaMV Significa utilizar un perfil de rendimiento para determinar por qué la secuencia de comandos es lenta para empezar y optimizar su código para mejorar el tiempo de ejecución. Esto puede o no ser útil, dependiendo de lo que sea el cuello de botella (CPU vs. E/S de disco frente a red). – Dan

149

que tenía el mismo problema y lo resolvió cambiando el valor del parámetro max_execution_time en php.ini, así:

max_execution_time = 360  ; Maximum execution time of each script, in seconds (I CHANGED THIS VALUE) 
max_input_time = 120   ; 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 by default) 

espero que esto podría ayudarte.

+1

Por alguna razón, ini_set no funciona, ¡pero eso es seguro! – gabrjan

+0

'php.ini' se puede encontrar en'/etc/php5/apache2/php.ini' .... Estoy usando ubuntu 13.04 ... – Enissay

+0

Tuve el mismo problema al instalar moodle en wamp, pero resolví la configuración de php. archivo ini –

5

lo cando fácilmente con whm. jusst llegó a whm -----> configuración del servicio ----------> editor de configuración php ------- max_execution_time -----> 30 (por defecto es cambiarlo a cualquier valor lo desea)

6

Tal vez busque cualquier cosa que haya modificado en el archivo php.ini. Por ejemplo I cambió el "; intl.default_locale =" a "; intl.default_locale = es_utf8" el fin de permitir la "extensión de internacionalización (Intl)" sin añadir la "extension = php_intl.dll" entonces este mismo error ocurrió. Entonces, sugiero que compruebe si hay errores similares.

42

Todas las respuestas anteriores son correctas, pero utilizo una forma simple de evitarla en algunos casos.

Sólo hay que poner este comando en el comienzo de su script:

set_time_limit(0); 
15

Editar php.ini

Encuentre esta línea:

max_execution_time 

cambiar su valor a 300:

max_execution_time = 300 

300 significa 5 minutos de tiempo de ejecución para la solicitud http.

7

Siga la ruta /etc/php5(your php version)/apache2/php.ini.

Ábralo y establezca el valor de max_execution_time en el deseado.

17

Me encontré con este problema al actualizar a WordPress 4.0. De forma predeterminada, WordPress limita el tiempo máximo de ejecución a 30 segundos.

Agregue el código siguiente a su archivo .htaccess en el directorio raíz de la instalación de WordPress a pasar por encima de la opción predeterminada.

php_value max_execution_time 300 //where 300 = 300 seconds = 5 minutes 
9

Podemos resolver este problema de 3 maneras diferentes.

1) Uso de archivo php.ini

2) Uso de archivo .htaccess

3) Uso de archivo wp-config.php (para Wordpress)

Para más detalles ->steptoinstall

10

si todo lo anterior no funcionó para usted, agregue un archivo .htaccess en el directorio donde está ubicado su script y póngalo dentro de

<IfModule mod_php5.c> 
php_value post_max_size 200M 
php_value upload_max_filesize 200M 
php_value memory_limit 300M 
php_value max_execution_time 259200 
php_value max_input_time 259200 
php_value session.gc_maxlifetime 1200 
</IfModule> 

esta fue la forma en que resolví mi problema, ni ini_set('max_execution_time', 86400); ni set_time_limit(86400) resolvió mi problema, pero el método .htaccess lo hizo.

+1

Funciona en mi caso. Gracias. Reemplace M con G para GB –

3

Aumente el tiempo de ejecución de scripts agregando la siguiente línea en la parte superior del script PHP.

ini_set('max_execution_time', 120); //120 seconds = 2 minutes 

de referencia ha tomado de Increase the PHP Script Execution Time

2

Tengo mismo problema en sitio de WordPress, añadí en el archivo .htaccess luego trabajando muy bien para mí.

php_value max_execution_time 6000000 
4

extender su max_execution_time puede utilizar cualquiera ini_set o set_time_limit.

// Set maximum execution time to 10 seconds this way 
ini_set('max_execution_time', 10); 
// or this way 
set_time_limit(10); 

!! Pero tenga en cuenta que, tanto en funciones también reinicia el conteo del tiempo de la escritura ya ha tomado para ejecutar

sleep(2); 
ini_set('max_execution_time', 5); 

register_shutdown_function(function(){ 
    var_dump(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']); 
}); 

for(;;); 

// 
// var_dump outputs float(7.1981489658356) 
// 

por lo que si desea establecer la cantidad máxima exacta de la escritura de tiempo puede funcionar, el comando debe ser muy en primer lugar.

Las diferencias entre esas dos funciones son

  • set_time_limit no ¿La información de retorno si fue exitosa pero será lanzar una advertencia en caso de error.
  • ini_set retornos valor antiguo en caso de éxito, o falsa en caso de fallo sin ninguna advertencia/error
6

Se puede quitar la restricción por doten a cero mediante la adición de esta línea en la parte superior de su script:

<?php ini_set('max_execution_time', 0); ?> 
Cuestiones relacionadas