2011-10-05 15 views
9

Tengo una tarea en mi script que trata de convertir videos con ffmpeg. Hago esto con codeigniter 2.0.3 y ubico el script en las bibliotecas y uso shell_exec() para ejecutar ffmpeg.PHP Ignorando mi max_execution_time

Hay 3 tareas en mi script php.

  1. carga de archivos de vídeo
  2. Convertir a FLV
  3. Generar pulgar
  4. Guardar en dB.

Cuando cargo un archivo, mi script php comienza a convertir mi video cargado. Pero cuando la conversión finaliza unos 5 minutos. No continuará generando pulgar. Y Su dicen

PHP Fatal error: Maximum execution time of 300 seconds exceeded in C:\AppServ\www\mis\application\libraries\my_video_utility.php on line 102, referer: http://localhost/mis/test/

he puesto mi tiempo max_execution, max_input_time, etc para 3600 en php.ini también añadir set_time_limit() y set_ini() en mi script php. Pero, sigue siendo un error.

Pero, cuando subí un video corto, está listo.

+0

¿Ha comprobado 'phpinfo();' que todos los parámetros se han cambiado realmente? – zerkms

+0

reinició php después de editar php.ini? –

+0

¿Podría ser la empresa de alojamiento lo está bloqueando para hacer esto? Existe una configuración de seguridad que no permite cambiar el tiempo máximo de ejecución que a algunos hosts les gusta usar. Voy a tratar de encontrar el nombre de configuración – Ben

Respuesta

17

Ok. Yo hago esto yo mismo. Me he contactado con mi maestro. Hay algo que CodeIgniter no incluye esto en su documentación.

En la línea 103 en el sistema/núcleo/CodeIgniter.php

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

trato de cambiar el valor y funciona.

+1

Aquí está la confirmación https://github.com/bcit-ci/CodeIgniter/commit/f566af5ffb8f2e8d49bd0b206c6ee29c8bc35a78 – macki

2

Solución para cambiar la función set_time_limit() en CodeIgniter.php funciona, pero creo que no es una buena idea cambiar los archivos centrales de framework.

Me encontraron otra decisión, puede llamar al set_time_limit() donde lo necesite y será la configuración de sobrelapp del límite de tiempo en CodeIgniter.php.

0

Codeigniter 2 tiene la función set_time_limit ejecutada con 300. Después de actualizar a Codeigniter 3, una cosa comenzó a fallar. Después de ver esta publicación, me di cuenta de que la llamada a set_time_limit se eliminó en 3, por lo que es posible que deba agregar el código en la respuesta aceptada a su código de problema en particular. No recomendaría volver a agregarlo a Codeigniter.php