es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo hacer que mi servidor permita que mi script de PHP se ejecute durante 75 minutos en lugar de desconectarse después de solo 45 minutos?

Estoy tratando de guardar un archivo mp4 desde una transmisión en vivo de audio mediante un script de PHP iniciado por una tarea cron.

Se espera que funcione durante 75 minutos, pero el problema es que solo se ejecuta durante 45 minutos. Descubrí que el servidor puede desconectar el proceso y no permitir que el script se ejecute durante tanto tiempo.

Verifiqué mi configuración de PHP ini desde CPanel y encontré esto:

allow_url_fopen
Activado
display_errors
Desactivado
enable_dl
Desactivado
file_uploads
Activado
max_execution_time
30
max_input_time
60
max_input_vars
1000
memory_limit
256M
post_max_size
512M
session.gc_maxlifetime
1440
session.save_path
/var/cpanel/php/sessions/ea-php74
upload_max_filesize
512M
zlib.output_compression
Desactivado

Este es mi script de PHP:

<?php

function flush_buffers(){
    ob_end_flush();
    ob_flush();
    flush();
    ob_start();
}

$path = __DIR__ . '/save.mp4';

$stream = fopen('URL de la solicitud', "rb");
$save = fopen($path, "w");
$startTime = time();
$finishTime = $startTime + (60*75);
while ($finishTime >= time()) {

$response = fread($stream, 8192);
fwrite($save, $response);
flush_buffers();

}

fclose($stream);
fclose($save);
exit();

?>
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución

    El problema que estás experimentando se debe a que tu max_execution_time de PHP está configurado en 30 segundos. Como resultado, tu script se termina después de 30 segundos de ejecución.

    Para solucionarlo, necesitas actualizar el max_execution_time a 4500 segundos, lo cual equivale a 75 minutos.

    Para hacer esto, puedes actualizar la configuración de max_execution_time en tu CPanel o modificar tu script para incluir la siguiente línea al principio del mismo:

    ini_set('max_execution_time', 4500);

    Esto aumentará el tiempo máximo de ejecución para tu script a 75 minutos, permitiendo que se ejecute durante el período previsto.

Comments are closed.