PHP shell_exec() 명령을 찾을 수 없습니다

PHP shell_exec() 명령을 찾을 수 없습니다

PHP를 사용하여 프로그램을 실행해야 하는데 문제의 파일은 ClustalW(clustalw2)입니다. 내 Apache 사용자는 피쉬 쉘을 사용하는 http이므로 clustalw2를 /srv/http/Clustal피쉬 경로로 이동하고 디렉토리를 추가했습니다.
터미널을 사용하여 http에 로그인하고 실행하면 clustalw2 -INFILE=input_file -OUTFILE=output_file모든 것이 예상대로 작동합니다.
그러나 실행할 때마다 shell_exec('clustalw2 -INFILE=input_file -OUTFILE=output_file');아무 일도 일어나지 않으며 다음과 같은 오류 로그가 나타납니다.sh: line 1: clustalw2: command not found


내가 실행하면 :

<?php
echo "USER: ".shell_exec('whoami')."<br>";
echo "SHELL: ".shell_exec('echo "$SHELL"')."<br>";
echo "WHICH clustalw2: ".shell_exec('which clustalw2');

산출:
사용자: http
shell:/usr/bin/fish
여기서 clustalw2:


which clustalw2http 사용자를 사용하여 터미널에서 실행하는 경우 :

/srv/http/Clustalw/clustalw2

답변1

프로그램 이 에 없기 clustalw2때문에 프로그램을 찾을 수 없습니다 .clustalw2$PATH

귀하의 경우 가장 간단한 해결책은 다음과 같이 clustalw2전체 경로로 바꾸는 것입니다 ./srv/http/Clustalw/clustalw2shell_exec

관련 정보