我正在尝试从 PHP 执行我使用 cmake 和 make 命令生成的 c++ 二进制文件。如果我尝试从终端执行相同的命令,一切正常,但从 php 似乎什么都没有发生。我检查了安全模式,它关闭了。我已使用 chmod 授予所有可执行权限。我试过把东西放在同一个文件夹,不同的文件夹。事实上,我已经尝试了我能想到的所有可能的解决方案,但我仍然无法执行这些二进制文件。知道为什么我不能这样做吗?
任何帮助将不胜感激。
提前致谢。
我使用的程序:-
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);
}
我的 shell 脚本对二进制文件有一个正常的调用,比如
/path/to/folder/binary_file $args
我从我的 shell 脚本中尝试了 echo、ls、mkdir cmd,它运行良好,只是这些二进制文件没有被执行。