У меня есть сценарий bash, который работает должным образом как из оболочки, так и из командной строки PHP, но не при вызове со страницы PHP в Apache (Raspbian). То есть это работает (командная строка PHP):
>php exec('/var/www/html/scripts/myBashScript.sh');
Но это не так (index.php):
<?php
exec('/var/www/html/scripts/myBashScript.sh');
?>
Сообщения об ошибках не отображаются, и я не вижу ничего значимого в журналах сервера Apache. Как было предложено другими ответами, я также пробовал:
- exec ('sh /var/www/html/scripts/myBashScript.sh')
- exec ('./ scripts / myBashScript.sh')
- exec ('ш ./scripts/myBashScript.sh')
И файл сценария, и содержащая его папка имеют разрешения rwx для пользователя Apache (www-data). Сценарий установлен как исполняемый. Встроенные команды bash работают так, как ожидалось от файла php, т.е. это работает:
<?php
echo exec('whoami');
?>
Что мне не хватает?
$output
и$return_var
аргументы иvar_dump
то, что они содержат. Также, если это сценарий bash, попытка запустить его сsh
вместоbash
кажется глупой. - person Alexander O'Mara   schedule 09.04.2016$output
и$return_var
иvar_dump
их? Что они содержат? По крайней мере, тот должен дать вам код выхода. - person Alexander O'Mara   schedule 09.04.2016