Я хочу выполнить сценарий оболочки в php веб-странице для проверки некоторых процессов, работающих на моей системе (Ubuntu 12.04). Googleing я нашел о shell_exec()
но мне не может удаться запустить скрипт при загрузке php.
Это - код php, который я использую.
$output = shell_exec('./dirlist.bash');
echo "<pre>$output</pre>";
и часть HTML я добираюсь
<pre></pre>
Также попробованный $output = shell_exec('sudo -u www-data ./dirlist.bash');
dirlist.bash делает ls-l (только для сценария тестирования и shell_exec)
Я думаю, что это не проблема разрешения. Под управлением каталог предоставляет запись и полномочия на исполнение для всех пользователей (я должен быть осторожным здесь).
drwxrwxrwx 4 meteo meteo 4096 mar 11 15:20 RAMS
Пользовательские www-данные были добавлены к sudoers файлу в случае, если это было необходимо
www-data ALL = (meteo) NOPASSWD: /home/meteo/www/RAMS/dirlist.bash
Заранее спасибо
Вам, вероятно, нужно к chdir к корректному каталогу прежде, чем назвать сценарий. Таким образом, можно гарантировать, в каком каталоге сценарий находится прежде, чем назвать команду оболочки.
$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
echo "<pre>$output</pre>";
Код от: