Linux / PHP Вопрос - PullRequest
       6

Linux / PHP Вопрос

1 голос
/ 18 июня 2010

Я довольно большой n00b, когда дело доходит до Linux

exec ('whoami', $output, $return);
echo $return;  

// Outputs 127 Что означает, что команда не выполняется.Я могу заставить его выполнить, когда я рута на сервер.

Любая помощь будет принята с благодарностью!

Ответы [ 3 ]

1 голос
/ 18 июня 2010

127 состояние выхода указывает на отсутствие команды. Возможно, whoami отсутствует в системе, или, возможно, в конфигурации вашего веб-сервера вы каким-то образом заключены в тюрьму или вас ограничивают с помощью safe_mode / open_basedir .

Для проверки вы можете попробовать запустить:

exec('which whoami', $output, $return);
print_r($output);
echo $return;

Если вам представлен пустой массив и код возврата 0, то исполняемый файл whoami в настоящее время недоступен с вашего веб-сервера / установки PHP.

Чтобы проверить настройки safe_mode, open_basedir, позвоните phpinfo .

1 голос
/ 18 июня 2010

Если вы попробуете это:

<?php
exec('whoami');
?>    

, вам будет указано имя пользователя PHP .. Если вы попробуете это:

<?php
exec('whoami', $output, $return);
print_r($output);
?>

, вы увидите, что $ output - это массивчто угодно, что выводит оболочка.

Возвращаемое значение, согласно руководству по PHP , «в эту переменную будет записан статус возврата выполненной команды».- это то, что вы хотите?

0 голосов
/ 18 июня 2010

Почему бы просто не сделать что-то вроде:

<?php

$var = `whoami`;

echo $var;

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...