Ejecutando el script sh cuando se cargan archivos en el servidor xampp

Ejecutando el script sh cuando se cargan archivos en el servidor xampp

Estoy creando una aplicación que requiere que se ejecute un script .sh en un archivo que se cargó recientemente en mi servidor XAMPP (directorio:/opt/lampp/htdocs/audio_server/uploads) que simplemente lo mueve de un directorio a otro. . El siguiente es mi código PHP para llamar al archivo:

    <?php
     print_r($_FILES);
     $target_path = "uploads/";

     $target_path = $target_path . basename( $_FILES['audio_name']                                          ['name']); 

      if(move_uploaded_file($_FILES['audio_name']['tmp_name'], $target_path))
     {
         echo "The file ".  basename( $_FILES['audio_name']['name'])." has been uploaded";
         chmod ("uploads/".basename( $_FILES['audio_name']['name']), 0777);
     }
     else
     {
         echo "There was an error uploading the file, please try again!";
         echo "filename: " .  basename( $_FILES['audio_name']['name']);
         echo "target_path: " .$target_path;
     }
     echo shell_exec("/opt/lampp/htdocs/audio_server/uploads/dirChangeScript.sh 2>&1");

     ?>

y mi archivo dirChangeScript.sh es el siguiente:

    latest_file=$(ls -t | head -n 1)
    cp -p "$latest_file" /opt/lampp/htdocs/audio_server/converted

Al ejecutar el script anterior aparece el error "directorio omitido 'cargas'".

El problema, por extraño que parezca, es que cada vez que se ejecuta el script dirChangeScript desde el archivo PHP no se observa ningún efecto, es decir, el archivo más reciente no se copia en la carpeta especificada.

Pero cuando ejecuto el script a través de la terminal, el archivo adecuado (el más reciente) se copia en el directorio de destino.

También probé la siguiente declaración:

    cp -r "$latest_file" /opt/lampp/htdocs/audio_server/converted

Pero en este caso, todo el directorio de carga junto con todos sus archivos se copia dentro de la carpeta convertida.

información relacionada