Запуск скриптов в Linux через WEB интерфейс.
При настройках по умолчанию сервера APACHE и PHP, модуль php не может запустить скрипт в Linux по вызову shell_exec(" <команда запуска скрипта> ").
Если <команда запуска скрипта> в рутовой консоли Linux выполняется без проблем, но не выполняется через web-интерфейс, можно разрешить выполнять скрипт другим пользователям системы Linux. Сделать это можно путем редактирования файла /etc/sudoers. Данный файл рекомендуется редактировать с помощью специальной программы visudo.
1. Запускаем
#visudo
2. Ищем строчку
root ALL=(ALL) ALL
3. Переходим в режим вставки, нажав клавишу "i". Внизу появится информирование о том, что мы перешли в режим вставки данных - -- INSERT --:
4. Дописываем следующую строчку после найденной строки:
ALL ALL=(root) NOPASSWD:<команда запуска скрипта>
5. Нажимаем клавишу "Esc", тем самым перейдя в обычный режим просмотра
6. Сохраняемся, набрав комбинацию ":w"
7. Выходим, введя комбинацию":q"
8. Теперь при вызове страницы с командой php скрипт должен выполниться
<?php
$x=shell_exec("<команда запуска скрипта> ");
echo $x;
?>
Примечание: У меня скрипт содержал команду создания графиков rrdtool и никак не хотел выполняться. Заработало только после добавления разрешения запуска rrdtool в файл /etc/sudoers:
ALL ALL=(root) NOPASSWD:/usr/bin/rrdtool