这是我从PHP执行命令的代码:
$execQuery = sprintf("/usr/local/bin/binary -mode M \"%s\" %u %s -pathJson \"/home/ec2/fashion/jsonS/\" -pathJson2 \"/home/ec2/fashion/jsonS2/\"", $path, $pieces, $type);
exec($execQuery, $output, $return);
$return
值始终为0,但$output
为空。 $output
应该是JSON。
binary
(例如/usr/local/bin/binar
),我(正确)$return = 127
。 -mode R
并没有退出),我从控制台得到了错误(也是正确的)。$execQuery
(之前我打印过,以确定引号),它会正确执行。它只是PHP方面我遇到错误。有什么不对? 提前谢谢。
答案 0 :(得分:1)
嗯,可能会发生一些事情......
为了调试,最好使用proc_open而不是exec,并检查STDOUT和STDERR。这可能会为您提供有关正在发生的事情的其他信息。
我为PHP编写了一个small utility library,它以更安全的方式执行外部程序,并提供了附加的调试信息。它可能会帮助你,至少找出问题所在。