exec -PHP возвращает _значение равно 126

Я пытаюсь выполнить команду оболочки в PHP-скрипте, но exec возвращает код 126, что означает «Вызванная команда не может быть выполнена» (Проблема с правами доступа или команда не является исполняемой ). Но самое смешное, что если я запускаю тот же php-скрипт под cli, он работает хорошо. Что с этим не так?

Может быть, есть какие-то проблемы с окружающей средой? Потому что, когда я запускаю его под Apache, он возвращает код 127, если я не использую абсолютный путь к исполняемому файлу (в cli, он работает хорошо и возвращает 0, даже если я использую только имя файла ). Файл хранится в Папка /usr/local/bin.

ОБНОВЛЕНИЕ:

Как и просили в комментарии, я показываю пример своего кода, но в нем нет ничего особенного.

Эта часть отлично работает под cli, но не работает под apache($retvalбудет равно 127):

$output = array();
$retval = 0;
exec( "myexecutablefile /full/path/to/someotherfile.js", $output, $retval );
echo implode( PHP_EOL, $output );

Этот фрагмент кода вернет$retval = 126

$output = array();
$retval = 0;
exec( "/usr/local/bin/myexecutablefile /full/path/to/someotherfile.js", $output, $retval );
echo implode( PHP_EOL, $output );
6
задан j0k 17 July 2012 в 09:59
поделиться