Php 多个linux命令未返回预期结果

Php 多个linux命令未返回预期结果,php,ubuntu,command-line,command,Php,Ubuntu,Command Line,Command,我正在将一个web应用程序从Windows环境转换为Linux(Ubuntu)。我有一个页面,在lighttpd和PHP5下运行,我得到了奇怪的结果php没有在安全模式下运行,我没有定义任何禁用的函数 我试图模仿以下终端命令: /usr/local/bin/findscu-S-k“00080052=研究”-k“002000D”192.168.56.1 5678 当从终端运行时,这会导致信息流返回,产生8行信息。每个参数之间都有空格(只是希望确保此处注明) 我的PHP文件包含以下内容 $cmd =

我正在将一个web应用程序从Windows环境转换为Linux(Ubuntu)。我有一个页面,在lighttpd和PHP5下运行,我得到了奇怪的结果php没有在安全模式下运行,我没有定义任何禁用的函数

我试图模仿以下终端命令:

/usr/local/bin/findscu-S-k“00080052=研究”-k“002000D”192.168.56.1 5678

当从终端运行时,这会导致信息流返回,产生8行信息。每个参数之间都有空格(只是希望确保此处注明)

我的PHP文件包含以下内容

$cmd = '/usr/local/bin/findscu';
$param = ' -S -k "0008,0052=STUDY" -k "0020,000d" 192.168.56.1 5678';
$param = ''; // $retVal = 0, $output=63 elements
$fullcmd = $cmd.$param;
$perms = fileperms($cmd);
$info = exec($fullcmd,$output,$retVar);
echo $fullcmd;
echo '<p>Permissions : '.substr(sprintf('%o', fileperms($cmd)), -4);
echo '<p>I am running as '.exec('whoami');
echo '<p>Return value : '.$retVar;

echo '<br>No of elements : '.count($output);
if(count($output)>1){
    echo '<pre>';
    print_r($output);
    echo '</pre>';
    }
。。。诸如此类

但是,当我注释第3行时,因此按照我的预期定义$param变量,我得到$retVar=0(这很好,命令运行时没有错误),但是返回数组的计数也包含0个元素

这是生成的页面内容:

root@ubuntu:/home/pry/OSID# /usr/local/bin/findscu -S -k '0008,0052=STUDY' -k '0020,000d' 192.168.56.1 5678
W: ---------------------------
W: Find Response: 1 (Pending)
W: 
W: # Dicom-Data-Set
W: # Used TransferSyntax: Little Endian Implicit
W: (0008,0052) CS [STUDY ]                                 #   6, 1 QueryRetrieveLevel
W: (0020,000d) UI [1.3.46.670589.5.2.10.2156913941.892665384.993397] #  48, 1    StudyInstanceUID
W: 
我看不出我到底做错了什么。我确信这与空间有关,但我看不出来。我尝试过在$param的前面分别设置双引号、单引号和反斜杠,甚至尝试过$cmd='在一个变量中使用整个命令'

天晚了,我肯定我太累了,看不到它,但我需要一些帮助

有什么想法吗

(顺便说一句,这是终端的输出:)


现在我知道。。。在命令末尾追加2>&1会将输出重定向回标准输出,而不是标准错误。有趣的是,我认为这是关于我的命令输出是否实际上是一个错误的语义,而不是预期的响应

哦-我已经检查过Apache2,同样的事情也发生了,所以现在我知道这不是LIGHTTPD问题。现在-有趣的是,我看到应该分配给我的数组($output)的响应正在记录在Apache2 error.log中?
/usr/local/bin/findscu -S -k '0008,0052=STUDY' -k '0020,000d' 192.168.56.1 5678
Permissions : 0755
I am running as www-data
Return value : 0
No of elements : 0
root@ubuntu:/home/pry/OSID# /usr/local/bin/findscu -S -k '0008,0052=STUDY' -k '0020,000d' 192.168.56.1 5678
W: ---------------------------
W: Find Response: 1 (Pending)
W: 
W: # Dicom-Data-Set
W: # Used TransferSyntax: Little Endian Implicit
W: (0008,0052) CS [STUDY ]                                 #   6, 1 QueryRetrieveLevel
W: (0020,000d) UI [1.3.46.670589.5.2.10.2156913941.892665384.993397] #  48, 1    StudyInstanceUID
W: