xampp 서버에 파일 업로드 시 sh 스크립트 실행

xampp 서버에 파일 업로드 시 sh 스크립트 실행

내 XAMPP 서버(디렉토리:/opt/lampp/htdocs/audio_server/uploads)에 새로 업로드된 파일에서 .sh 스크립트를 실행해야 하는 애플리케이션을 만들고 있습니다. 이 파일은 한 디렉터리에서 다른 디렉터리로 간단히 이동됩니다. . 다음은 파일을 호출하는 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

그러나 이 경우 모든 파일과 함께 전체 업로드 디렉토리가 변환된 폴더 내부에 복사됩니다.

관련 정보