echo exec работает, но exec нет - PullRequest
1 голос
/ 20 октября 2011

Я использую Red Hat Enterprise Edition и попробуйте сделать простую страницу PHP ..

Когда я пытаюсь с ...

 // html code
 <?php
 echo exec(<cmd>); 
 ?>
// rest html code

Хорошо работает

но при попытке с ...

 // html code     
 <?php
 exec(<cmd>);
 ?>
 // rest html code

Не работает

даже простая команда, такая как cat, ls и т. Д. Не работает, а также я попытался 2 > &1, тогда ошибка не выводится

В чем может быть возможная ошибка ???

Ответы [ 2 ]

5 голосов
/ 20 октября 2011

Docs:

возвращает ответ от команды, вам также потребуется распечатать ответ

Пример:

<?php
$response = array()
exec('whoami', $response);
print_r($response,true);
?>
0 голосов
/ 30 ноября 2011

okkkkkkk ......... Я решил проблему. На самом деле было две проблемы ...

  1. Пользователь apache ищет свою команду в папке /usr/bin по умолчанию, а команда, которую я пытался использовать, находилась в /usr/local/bin. Поэтому мне нужно создать мягкую ссылку на эту команду в каталоге /usr/bin.

  2. Во-вторых, apache является менее привилегированным пользователем, чем пользователь root, поэтому необходимо ввести команду sticky bit, чтобы apache мог успешно выполнить ее.

Я надеюсь, что это поможет кому-то еще, кто столкнется с той же проблемой в будущем.

...