PHP exec / shell exec / system не работает через браузер


Я запускаю SCO Unix box с apache версии 1.3.33 и PHP версии 4.4. Я могу правильно выполнить команду exec через cli, но столкнусь с проблемами при попытке выполнить сценарий через браузер. Мои настройки:

  • безопасный режим выкл
  • полные разрешения на чтение/запись/exec
  • отображение всех ошибок
  • нет отключенных функций

Мой код: test_script.php в htdocs dir

<?php
exec('ls',$out,$rval);
echo "Output:<hr />";
print "<pre>"; print_r($out); print "</pre>";
echo "Return Value:<hr />";
echo $rval;
?>

Я попытался явно задать исполняемый двоичный путь тоже. Тестовый сценарий - это тот же пользователь / Группа, что и apache. Я также попытался добавить 2>&1 к arg, но не вижу никаких изменений. Заранее спасибо.

Смотрите здесь для подобного.

2 3

2 ответа:

Попробуйте

$output = shell_exec('ls /tmp/ 2>&1')

Возможно, у вас возникли проблемы с правами доступа к текущему каталогу для пользователя, запускающего веб-страницу.

Вы также можете попробовать команду whoami.

Иногда эти функции отключены, вы должны включить их в php.ini