2009-10-19 13 views
11

Si hago set_time_limit(50) o ini_set('max_execution_time',50), luego, cuando me echo ini_get('max_execution_time') en mi localhost me sale 50, pero cuando hago esto en otro servidor que se hace eco del defecto 30 e ignora por completo mi solicitud . ¿Por qué es esto?ini_set, set_time_limit, (max_execution_time) - no trabajar

Respuesta

12

No se puede cambiar esta configuración con ini_set() cuando se ejecuta en modo seguro. La única solución es desactivar el modo seguro o cambiando el límite de tiempo en php.ini.

- manual de PHP, configuración de ejecución, description of max_execution_time

Muchos servidores ejecutan en modo seguro. El otro servidor es probablemente uno de ellos.

Editar: La misma restricción está en su lugar en set_time_limit:

Esta función no tiene efecto cuando PHP se está ejecutando en modo seguro. No hay una solución alternativa que no sea apagar el modo seguro o cambiar el límite de tiempo en php.ini.

- manual de PHP, set_time_limit página

+0

¡Te daré el cheque de respuesta, pero lo descubrí antes de refrescar la página! ahhh! Pero entonces, ¿no se produjo un error en el script en 30 segundos? ¿Por qué me dice "la conexión con el servidor se ha restablecido" alguna idea? – Mickey

+0

Supongo que PHP simplemente cierra la conexión sin finalizar, por lo que la conexión al servidor se ha restablecido. Por curiosidad, ¿qué operaciones estás haciendo que demoran más de 30 segundos? Debe haber alguna manera de reducir el tiempo de procesamiento a menos que trabaje mucho con bases de datos XML o lentas. – Powerlord

+0

Tengo que conectarme a múltiples proveedores MLS a través de la especificación RETS (rets.org) para obtener los datos de la lista. Aproximadamente 1k por listado, y? K por alrededor de 5-12 imágenes en bruto. Inserto los datos en MySQL luego pasa al siguiente, (en un bucle). Luego tiene que geocodificar cada listado y algún otro sentido fantasioso. – Mickey

1

¿Permite GoDaddy editar su archivo PHP.INI remoto, o (logrando la misma función) establecer esas opciones en tiempo de ejecución? Muchos hosts restrictivos (y no sé esto sobre GoDaddy de una manera u otra) no te permitirán utilizar las opciones de PHP ya sea a través del archivo de configuración o en tiempo de ejecución como lo hiciste en WAMP. Podría ser que, aunque sigas llamando a esa función, no se esté aplicando.

Uso

echo 'Time Limit = ' . ini_get('max_execution_time') . 

El manual dice que si se fija en absoluto en el PHP.INI, que se anulará este tiempo de ejecución. PHP Manual on set_time_limit

+0

ejecutar algo más, algo más corto/más fácil en su contra y comprobar la respuesta. – markus

+0

tuve que volver a editar mi pregunta, gracias por su ayuda hasta el momento. – Mickey

1

Puede cambiar max_execution_time.
Cargue una línea (max_execution_time = 600) php5.ini en su carpeta raíz (donde reside php.ini).