shell_exec не работает с командой nmap

У меня возникла проблема с shell_exec php shell_exec , вот пример кода:

 $output = shell_exec('nmap -PS80 -n -oG - --send-ip 11.11.11.11'); if ( $output ) { echo "Output found..."; } else { var_dump( $output ); } 

Он возвращает: NULL , но когда я меняю команду shell_exec на следующее:

$output = shell_exec('echo 1');

то выход: Output found... поэтому он работает правильно, и нет проблем с разрешениями или безопасным режимом (который, кстати, отключен).

У него возникают проблемы с выполнением команды nmap . Я проверил эту команду в командной строке оболочки в putty и ее правильную работу:

 # nmap -PS80 -n -oG - --send-ip 11.11.11.11 # Nmap 5.61TEST2 scan initiated Tue Feb 28 13:55:41 2012 as: nmap -PS80 -n -oG - --send-ip 11.11.11.11 # Nmap done at Tue Feb 28 13:55:43 2012 -- 1 IP address (0 hosts up) scanned in 0.04 seconds 

Так где же проблема?

Попробуйте указать полный путь к nmap, например /usr/local/bin/nmap . PHP может не знать о местоположении nmap. Наслаждайтесь!

Возможно, вы захотите прибегнуть к exec() , что даст вам большую диагностику ошибок:

 // Capture outout from STDERR as well $command = "nmap ... 2>&1"; exec($command, $output, $return_var); // If return code is not zero, the command failed if ($return_var != 0) { // dump all output, including error messages var_dump($output); }