"La función set_time_limit () y la directiva de configuración max_execution_time solo afectan el tiempo de ejecución de la secuencia de comandos en sí. Cualquier tiempo dedicado a la actividad que ocurre fuera de la ejecución de la secuencia de comandos, como llamadas al sistema usando system (), operaciones de flujo, consultas de bases de datos, etc. . no se incluye al determinar el tiempo máximo que el script ha estado ejecutándose. Esto no es cierto en Windows "De la documentación de PHP
Jacob Sánchez
Respuestas:
722
Tu circuito puede ser interminable. Si no es así, puede extender el tiempo máximo de ejecución de esta manera:
set_time_limit (300) se puede usar para extender temporalmente el límite de tiempo.
Omn
¿Está configurado solo para ese script o afectará a todos los otros scripts ejecutados después de este en el mismo servidor?
Rao
1
@Rao sí, esto será solo para ese script. Para hacerlo para todos los scripts, debe cambiarlo en el archivo php.ini. también puedes hacer set_time_limit (0); si desea que el script se ejecute para siempre o durante mucho tiempo
Haseeb
31
ini_set ('max_execution_time', 0); // sin límite
Junaid Atari
3
@sangam Yo diría que es una buena práctica, mantener este límite lo más bajo posible mientras se permite una cierta cantidad de búfer adicional. Por razones de seguridad, no quisiera apagarlo por completo. Se debe establecer razonable. De hecho, lo configuré en dos veces la cantidad de tiempo que tarda mi script de ejecución más larga en completarse en un nivel medio de estrés del servidor. Aún así, siempre podría fallar. Por lo tanto, la mejor práctica también es tratar los problemas de tiempo de espera para los scripts que requieren mucho tiempo por separado.
Hafenkranich
185
Tuve el mismo problema y lo resolví cambiando el valor para el parámetro max_execution_timeen 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)
Tu guión se está agotando. Eche un vistazo a la función set_time_limit () para aumentar el tiempo de ejecución. O perfile el script para que se ejecute más rápido :)
@HarshaMV Se refiere a utilizar un perfil de rendimiento para determinar por qué el script es lento al principio y optimizar su código para mejorar el tiempo de ejecución. Esto puede o no ser útil, dependiendo de cuál sea el cuello de botella (CPU vs. E / S de disco vs. Red).
Dan Bechard
12
si todo lo anterior no funcionó para usted, agregue un .htaccessarchivo al directorio donde se encuentra su script y póngalo dentro
En ciertos proveedores de alojamiento, es posible que deba configurar /home/[usernamefont>/.php/7.0/phprc
expertCode
7
Tal vez verifique cualquier cosa que haya cambiado en el archivo php.ini. Por ejemplo, cambié el "; intl.default_locale =" a "; intl.default_locale = en_utf8" para habilitar la "Extensión de internacionalización (Intl)" sin agregar el "extension = php_intl.dll", entonces ocurrió el mismo error. Por lo tanto, sugiero verificar errores similares.
Respuestas:
Tu circuito puede ser interminable. Si no es así, puede extender el tiempo máximo de ejecución de esta manera:
y
se puede usar para extender temporalmente el límite de tiempo.
fuente
Tuve el mismo problema y lo resolví cambiando el valor para el parámetro
max_execution_time
enphp.ini
, así:Espero que esto te pueda ayudar.
fuente
php.ini
se puede encontrar en/etc/php5/apache2/php.ini
.... Estoy usando ubuntu 13.04 ...Todas las respuestas anteriores son correctas, pero en algunos casos utilizo una forma simple de evitarlo.
Simplemente ponga este comando al comienzo de su script:
fuente
Me encontré con este problema al actualizar a WordPress 4.0 . Por defecto, WordPress limita el tiempo máximo de ejecución a 30 segundos.
Agregue el siguiente código a su archivo .htaccess en su directorio raíz de su instalación de WordPress para anular el valor predeterminado.
fuente
Editar php.ini
Encuentra esta línea:
Cambia su valor a 300:
300 significa 5 minutos de tiempo de ejecución para la solicitud http.
fuente
Tu guión se está agotando. Eche un vistazo a la función set_time_limit () para aumentar el tiempo de ejecución. O perfile el script para que se ejecute más rápido :)
fuente
si todo lo anterior no funcionó para usted, agregue un
.htaccess
archivo al directorio donde se encuentra su script y póngalo dentroesta fue la forma en que resolví mi problema,
ini_set('max_execution_time', 86400);
ni loset_time_limit(86400)
resolví, pero el método .htaccess sí.fuente
Podemos resolver este problema de 3 maneras diferentes.
1) Usando el archivo php.ini
2) Usando el archivo .htaccess
3) Usando el archivo Wp-config.php (para Wordpress)
fuente
Puede eliminar la restricción configurándola a cero agregando esta línea en la parte superior de su script:
fuente
Sigue el camino
/etc/php5(your php version)/apache2/php.ini
.Ábralo y establezca el valor
max_execution_time
en uno deseado.fuente
Tal vez verifique cualquier cosa que haya cambiado en el archivo php.ini. Por ejemplo, cambié el "; intl.default_locale =" a "; intl.default_locale = en_utf8" para habilitar la "Extensión de internacionalización (Intl)" sin agregar el "extension = php_intl.dll", entonces ocurrió el mismo error. Por lo tanto, sugiero verificar errores similares.
fuente
Aumente el tiempo de ejecución de su script agregando la siguiente línea en la parte superior del script PHP.
La referencia ha tomado de Increase the PHP Script Execution Time
fuente
Para extender su
max_execution_time
puede usar cualquieraini_set
oset_time_limit
.!! Pero tenga en cuenta que, ambas funciones se reinicia también contando el tiempo que la secuencia de comandos ya ha tardado en ejecutarse
así que si desea establecer la cantidad máxima exacta de tiempo que el script puede ejecutarse, su comando debe ser el primero.
Las diferencias entre esas dos funciones son
set_time_limit
no devuelve información si fue exitosa pero arrojará una advertencia por error.ini_set
devuelve el valor anterior en caso de éxito o falso en caso de error sin advertencia / errorfuente
Puedes hacerlo fácilmente con WHM. Solo tengo que:
(30 es el valor predeterminado, cámbielo a cualquier valor que desee)
fuente
Tengo el mismo problema en el sitio de WordPress, agregué el archivo .htaccess y luego funcionó bien para mí.
fuente
He realizado algunos cambios en mi caso en: xampp \ phpMyAdmin \ bibliotecas \ config.default.php
He buscado:
$cfg['ExecTimeLimit']
y cambiar el valor en el lado derecho ...Puede cambiar el valor de la mano derecha a cualquier valor superior, como '5000'. y funciona.
fuente