PHP에서 cmake 및 make 명령을 사용하여 생성 한 C++ 바이너리 파일을 실행하려고합니다. 터미널에서 같은 명령을 실행하려고하면 모든 것이 완벽하지만 PHP에서는 아무 것도 일어나지 않는 것 같습니다. 나는 그 safe_mode를 조사했다. chmod를 사용하여 모든 실행 권한을 부여했습니다. 같은 폴더, 다른 폴더에 물건을 넣으려고했습니다. 사실 내가 생각할 수있는 모든 가능한 솔루션을 시도했지만 여전히이 바이너리를 실행할 수 없습니다. 내가 왜 그렇게 할 수 없으 리라고 생각하니?PHP - C++ 바이너리 파일을 실행할 수 없습니까?
도움이 될 것입니다. 정말 감사하겠습니다.
미리 감사드립니다.
절차 내가 사용 : -
if($dir !== FALSE) {
$command = "./segmentation.sh $dir->dirname >> $dir->dirname/log";
$output = $this->terminal($command);
echo $output['output'];
}
단자 기능
public function terminal($command)
{
if(function_exists('system'))
{
ob_start();
system($command , $return_var);
$output = ob_get_contents();
ob_end_clean();
}
else if(function_exists('passthru'))
{
ob_start();
passthru($command , $return_var);
$output = ob_get_contents();
ob_end_clean();
}
else if(function_exists('exec'))
{
exec($command , $output , $return_var);
$output = implode("n" , $output);
}
else if(function_exists('shell_exec'))
{
$output = shell_exec($command) ;
}
else
{
$output = 'Command execution not possible on this system';
$return_var = 1;
}
return array('output' => $output , 'status' => $return_var);
}
그리고 내 쉘 스크립트 내가 시도
/path/to/folder/binary_file $args
에코, LS, MKDIR 같은 이진 정상적인 통화가 있습니다 cmd를 내 셸 스크립트에서 그리고 그것은 단지이 바이너리가 실행되지 않습니다 완벽하게 작동합니다.
는 –
는 당신이 C++ 바이너리를 실행하려고 시도하는 방법에 대한 몇 가지 코드를 제공 할 수있는 사용자 권한 문제 내기? 또한 C++ 바이너리의 소유자는 누구입니까? 웹 서버를 실행중인 사용자와 동일해야합니다. – neutron
@neutron 코드 조각을 게시했습니다. 보세요. – Varundroid