Запуск скрипта sh при загрузке файла на сервер xampp

Запуск скрипта sh при загрузке файла на сервер xampp

Я создаю приложение, которое требует, чтобы скрипт .sh запускался на файле, который был недавно загружен на мой сервер XAMPP (каталог :/opt/lampp/htdocs/audio_server/uploads), который просто перемещает его из одного каталога в другой. Ниже приведен мой PHP-код для вызова файла:

    <?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");

     ?>

и мой файл dirChangeScript.sh выглядит следующим образом:

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

При выполнении вышеуказанного скрипта возникает ошибка «пропущен каталог 'uploads'».

Проблема, как бы странно это ни звучало, заключается в том, что всякий раз, когда скрипт dirChangeScript запускается из PHP-файла, никакого эффекта не наблюдается, т.е. последний файл не копируется в указанную папку.

Но когда я запускаю скрипт через терминал, нужный файл (последний) копируется в целевой каталог.

Также я попробовал следующее утверждение:

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

Но в этом случае весь каталог загрузок вместе со всеми его файлами копируется в преобразованную папку.

Связанный контент