Error fatal: se superó el tiempo máximo de ejecución de 300 segundos

89

Sigo recibiendo este error de PHP:

Error fatal: se superó el tiempo máximo de ejecución de 300 segundos

He intentado configurar mi configuración max_execution_timey la mía max_input_timeen php.ini (tanto apache como cli) para 0,-1 y 4000segundos cada uno.

Y sigo recibiendo el error que dice:

Error fatal: se superó el tiempo máximo de ejecución de 300 segundos

Además, mi script se ejecuta más de 300 segundos antes de recibir este mensaje.

Estoy ejecutando el script a través de la línea de comandos.

También revisé mi phpinfo()para ver cuál php.iniestoy usando.

Aún más interesante, he intentado configurar max_execution_timey max_input_timeconfigurar a 5 segundos y mi script se ejecutará mucho más de 5 segundos antes de obtener:

Error fatal: se superó el tiempo máximo de ejecución de 300 segundos

dez
fuente
¿En qué tipo de configuración de servidor estás?
Pekka
1
Esto es tan extraño que tengo el mismo problema en apache 2.4.18 y php 7 ... Usando PHPMyAdmin para importar sql .. phpinfo (); informes de tiempo diferente .. Intentaré la configuración ini, supongo :(
Michael Fever
el mismo problema, trato de establecer set_time_limit (3603); ini_set ('max_execution_time', 3604); pero ambos no tienen efecto, el tiempo máximo de ejecución sigue siendo 360.
Infor Mat

Respuestas:

68

Al comienzo de su secuencia de comandos, puede agregar.

ini_set('MAX_EXECUTION_TIME', '-1');
Tules
fuente
2
agréguelo en la parte superior de su archivo php
Tules
2
Esta línea de código eliminará la restricción de tiempo máximo de ejecución de un código, permitiendo que un código php se ejecute para siempre (teóricamente).
Technotronic
2
en que guion?
Sagar Kodte
O set_time_limit(0);= igual.
Íhor Mé
99

Si está utilizando WAMP, vaya a:

Aumente el max_execution_timein y php.iniluego vaya a

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (cambie la ruta según su instalación)

abrir config.default.phpy cambiar el valor de $cfg['ExecTimeLimit']a 0:

$cfg['ExecTimeLimit'] = 0;

Esto resolverá el problema de las importaciones de PhpMyAdmin.

Vipin Dubey
fuente
@Vipin, tu solución me ayudó, especialmente esa config.default.php ;-)
Rishi Kulshreshtha
Feliz de ayudar ! Saludos :)
Vipin Dubey
gracias, después de horas y horas de frustración tratando de actualizar una base de datos de 500 MB a una versión más nueva de moodle ... lo he logrado. Específicamente moodle 2.2 - 2.6.
jamesTheProgrammer
2
¡Gracias por esta respuesta! ¡Ayudó a solucionar mi problema después de darme cuenta de que establecer el tiempo máximo de ejecución en php.ini no era suficiente!
Rimble
1
config.default.phpes muy explícito sobre no editarlo, y nos dice que lo editamos config.inc.php. Traté de encontrarlo y no pude, así que hice el mío y lo agregué <?php $cfg['ExecTimeLimit'] = 3000; ?>. Esto no hizo nada. ¡Decidí intentarlo y config.default.phpfuncionó! ¿Cómo se supone que hagamos el config.inc.phptrabajo?
BillyNair
67

Usuarios de Xampp

  1. Ir xampp\phpMyAdmin\
  2. Abra config.inc.php
  3. Buscar $cfg['ExecTimeLimit'] = 300;
  4. Establezca un valor mayor o cámbielo a 0 para ilimitado
  5. Si no se encuentra, agregue $cfg['ExecTimeLimit'] = 0;(o un valor mayor)
  6. Guarde el archivo y reinicie el servidor
Technotronic
fuente
8
Esto es literalmente lo único que funcionó para mí. Así que gracias por publicar. En mi configuración, $ cfg ['ExecTimeLimit'] = 300; no existía en config.inc.php, así que lo agregué allí en lugar de cambiar el valor en config.default.php; hay un mensaje bastante grande que indica no tocar el código en ese archivo;)
Ian
4
gracias por resaltar reiniciar el servidor . punto olvidable más importante.
Pradeep Kumar Prabaharan
4
Hay una nota en el archivo config.default.php que dice "¡No! No editar". Agregué $ cfg ['ExecTimeLimit'] = 0; a mi archivo config.inc.php ya que no existía y parecía funcionar.
brandozz
1
esta publicación me salvó el día y me ayudó por segunda vez !!! ¿Cómo puedo más uno después de 3 meses?
saber tabatabaee yazdi
24

Encontré una situación similar, y resulta que Codeigniter (el marco PHP que estaba usando) en realidad establece su propio límite de tiempo:

En system / core / Codeigniter.php, en la línea 106 de la versión 2.1.3 aparece lo siguiente:

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);
}

Como no había otra forma de evitar cambiar el archivo central, lo eliminé para permitir la configuración a través de php.ini, así como para dar el tiempo de ejecución máximo infinito para una solicitud CLI.

Sin embargo, recomiendo registrar este cambio en algún lugar en el caso de futuras actualizaciones de la versión de CI.

xiankai
fuente
7
OH. MI. BONDAD. No puedo creer esto. ¿Por qué el mundo sangriento limitarían el tiempo de ejecución además de todos los demás límites de tiempo de ejecución que ya existen? He perdido horas en esto. Gracias por tu publicación.
fool4jesus
1
Eso es increíble. Comentó la línea y funciona! ¿Por qué CI sobrescribiría el PHP predeterminado y no proporcionaría documentación sobre él?
Phil Cross
Si está leyendo esto y está usando ExpressionEngine (que se basa en CodeIgniter) ... Bueno, adivinen qué, EE anula la anulación de CI. Necesitará editar tanto /system/codeigniter/system/core/Codeigniter.php línea 106, Y /system/expressionengine/libraries/Core.php, línea 64. Fueron tres horas divertidas de mi vida descubrir eso ... .
Jack
@PhilCross si conoce la función que necesita ejecutar más tiempo, puede usar la sugerencia de Jess y colocarla set_time_limit(0);dentro de esa función. No necesita cambiar el núcleo: esta instrucción restablecerá el límite de tiempo, por lo que no necesita preocuparse por otras líneas en el núcleo o en otros paquetes mientras ejecuta esa función específica.
Armfoot
9

Pruebe algo como lo siguiente en su secuencia de comandos:

set_time_limit(1200);
Darth Egregious
fuente
3
set_time_limit(0);hace que su script se ejecute para siempre.
Jonathon
23
set_time_limit(0); permite que su script se ejecute para siempre.
Jess Telford
6

Esta es la respuesta correcta:

ir

c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php

encontrar y configurar

$cfg['ExecTimeLimit'] = 0;

reinicie todos los servicios y listo.

llioor
fuente
Respuesta perfecta, gracias @llioor
kach
5

vaya a xampp / phpmyadmin / libraries / config.default.php

y haz los siguientes cambios

from  $cfg['ExecTimeLimit'] = ’300′;
to  $cfg['ExecTimeLimit'] = ’0′;
Gaurav Arora
fuente
3

Para usuarios de Xampp

1. Go to C:\xampp\phpMyAdmin\libraries
2. Open config.default.php
3. Search for $cfg['ExecTimeLimit'] = 300;
4. Change to the Value 300 to 0 or set a larger value
5. Save the file and restart the server
6. OR Set the ini_set('MAX_EXECUTION_TIME', '-1'); at the beginning of your script you can add.
Islam Rafiqul
fuente
1

El tiempo de ejecución predeterminado de la CLI de PHP es infinito.

Esto establece el tiempo máximo en segundos que se permite que un script se ejecute antes de que el analizador lo termine. Esto ayuda a evitar que los scripts mal escritos inmovilicen el servidor. La configuración predeterminada es 30. Cuando se ejecuta PHP desde la línea de comandos, la configuración predeterminada es 0.

http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time

Verifique si está ejecutando PHP en modo seguro, porque ignora todas las configuraciones de ejecución de tiempo cuando está en eso.

Multitud
fuente
1

Para AppServ local

Vaya a C: \ AppServ \ www \ phpMyAdmin \ libraries \ config.default.php

Encontrar $cfg['ExecTimeLimit'] y establezca el valor en 0.

Entonces se verá como

$cfg['ExecTimeLimit'] = 0;
Zunnie Kanittika
fuente
1

Si está en xampp y usa phpMyadmin para importar archivos SQL grandes y ha aumentado el tiempo máximo de ejecución, el límite máximo de carga de archivos y todo lo necesario Y si ninguna de las respuestas anteriores funciona para usted, venga aquí

Vaya a su carpeta xampp, en mi caso, aquí está la ruta relativa al archivo que necesito modificar: C: \ xampp \ phpMyAdmin \ libraries \ config.default.php

/** * maximum execution time in seconds (0 for no limit) * * @global integer $cfg['ExecTimeLimit'] * by defautlt 300 is the value * change it to 0 for unlimited * time is seconds * Line 709 for me */ $cfg['ExecTimeLimit'] = 0;

Noor Ahmed
fuente
funciona $ cfg ['ExecTimeLimit'] = 0; . gracias
MindRoasterMir
0

USUARIOS WAMP:

1) Vaya a C: \ wamp \ apps \ phpmyadmin

2) Abra config.inc

3) Agregue $ cfg ['ExecTimeLimit'] = '3600 ′; al archivo.

4) Guarde el archivo y reinicie el servidor.

¡Este archivo sobrescribe el php.ini y funcionará para usted!

Asi
fuente
0

En mi caso, cuando enfrenté ese error en Phpmyadmin, probé MySQL-Front e importé mi base de datos con éxito.

Nota: aún puede utilizar las soluciones proporcionadas en esta pregunta para resolver su problema en Phpmyadmin.

Jamshid Hashimi
fuente
Hier gibt es nichts zu sehen ... :-)
Rahul
0

Si las respuestas anteriores no funcionan, intente verificar su código, en mi experiencia, tener un bucle infinito también causará ese problema. Verifique su declaración else if.


fuente
0

En Codeignitor versión 3.0.x, el sistema / core / Codeigniter.php no contiene la restricción de tiempo, además de insertar

ini_set('MAX_EXECUTION_TIME', -1);  

no funcionará ya que codeignitor anulará eso con su propia función set_time_limit (). Entonces, o tiene que eliminar esa función de codeignitor o simplemente puede insertar

set_time_limit('1000');

al comienzo del archivo php si desea cambiarlo a 1000 segundos. Establezca el tiempo en 0 (cero) si desea ejecutarlo todo el tiempo que desee.

Wenuka
fuente
0

En Xampp, en php.ini también debe verificar mysql.connect_timeout. Entonces, por ejemplo, cámbielo a:

mysql.connect_timeout = 3600

Ese tiempo siempre se contará en segundos (es decir, 1 hora en mi ejemplo)

andymnc
fuente
0

Los USUARIOS de MAMP que editan php.ini resuelven esto - hay una línea:

max_execution_time = 30; Tiempo máximo de ejecución de cada script, en segundos

establecer esto en un valor más alto funcionó.

el archivo está en php / php5.6.25 / conf / php.ini (obviamente, necesita mojar el archivo para la versión de php que está utilizando; puede averiguarlo en las preferencias de MAMP.

Jeremy Young
fuente
-1

Puede establecer un límite de tiempo:

ini_set('max_execution_time', 1000000000000000);
binhhoang18
fuente