>백엔드 개발 >PHP 튜토리얼 >`shell_exec`를 사용하여 PHP에서 호출할 때 Bash 스크립트가 실행되지 않는 이유는 무엇입니까?

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-04 03:17:30478검색

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

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

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

<code class="php">$output = shell_exec("./script.sh var1 var2");</code>

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

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

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

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

<code class="php">$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);</code>

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

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

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

위 내용은 `shell_exec`를 사용하여 PHP에서 호출할 때 Bash 스크립트가 실행되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.