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 clustalw2
http 사용자를 사용하여 터미널에서 실행하는 경우 :
/srv/http/Clustalw/clustalw2
답변1
프로그램 이 에 없기 clustalw2
때문에 프로그램을 찾을 수 없습니다 .clustalw2
$PATH
귀하의 경우 가장 간단한 해결책은 다음과 같이 clustalw2
전체 경로로 바꾸는 것입니다 ./srv/http/Clustalw/clustalw2
shell_exec