"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > `shell_exec`를 사용하여 PHP에서 호출할 때 Bash 스크립트가 실행되지 않는 이유는 무엇입니까?

`shell_exec`를 사용하여 PHP에서 호출할 때 Bash 스크립트가 실행되지 않는 이유는 무엇입니까?

2024-11-09에 게시됨
검색:974

Why is my Bash script failing to execute when called from PHP using `shell_exec`?

PHP에서 Bash 명령 실행: 실패한 스크립트 실행 문제 해결

이 질문에서 우리는 shell_exec를 사용하여 PHP에서 bash 스크립트를 실행하려고 시도하는 PHP 개발자를 만났습니다. 사용된 구문은 다음과 같습니다:

$output = shell_exec("./script.sh var1 var2");

그러나 이 명령이 호출되면 스크립트가 실행되지 않습니다.

이 문제를 디버깅하려면 실패 원인을 식별하는 것이 중요합니다. ./script.sh var1 var2를 사용하여 명령줄을 통해 실행할 때 스크립트가 성공적으로 실행되므로 문제는 PHP 코드 내에 있을 가능성이 높습니다.

스크립트 실행 실패를 일으킬 수 있는 일반적인 문제 중 하나는 잘못된 디렉터리 권한 또는 경로입니다. . PHP 스크립트에서는 외부 명령을 실행하기 전에 올바른 작업 디렉터리를 설정해야 하는 경우가 많습니다. 이 문제를 해결하기 위해 코드는 shell_exec를 호출하기 전에 chdir을 사용하여 올바른 디렉터리를 지정할 수 있습니다.

다음 코드 조각은 이 문제를 해결합니다.

$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);

이 예에서는 다음을 수행합니다.

  1. 현재 작업 디렉터리를 $old_path에 저장합니다.
  2. 작업 디렉터리를 '/my로 변경합니다. /path/' chdir을 사용.
  3. shell_exec를 사용하여 bash 스크립트를 실행합니다.
  4. 원래 작업 디렉토리로 다시 변경 chdir($old_path) 사용.

올바른 디렉토리가 있는지 확인함으로써 이 수정된 코드는 PHP에서 bash 스크립트를 성공적으로 실행해야 합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3