Я написал несколько сценариев оболочки, которые могут выполнять определенные задачи.
Но мой мангаер хочет, чтобы был какой-то веб-интерфейс, в котором он мог бы запускать эти сценарии и работать с ними.
Теперь я не знаю, как связать bash с сетью.
Знаю PHP.
Еще одна вещь, если я использую python, могу ли я создать веб-интерфейс, или это будет проще, чем программирование в bash
Если ваш менеджер настаивает, есть несколько решений, например webmin или Zentyal для управления серверами GNU / linux через веб-интерфейс.
Вы можете легко добавить свои собственные сценарии в эти веб-интерфейсы. Преимущество использования протестированных продуктов перед вашей собственной веб-службой, созданной заново, заключается в том, что эти веб-службы разрабатываются с учетом требований безопасности.
тем не мение Как системный администратор, я рекомендую вам управлять своими серверами, используя только оболочку (например, bash с экраном) через ssh.
Я бы очень НЕ рекомендую написать программное обеспечение на PHP, которое имеет доступ к / bin или другим соответствующим частям системы, и обслуживать его через apache. Потому что: PHP не является строгим, надежным и достаточно безопасным для реализации программ как Webmin с.
Но мне вообще интересно, зачем менеджеру выполнять административные задачи на сервере? Это действительно административные задачи? Или это что-то, что можно было бы написать на PHP с нуля? Я имею в виду, что если он просто хочет уменьшить изображение, вам не нужен для этого сценарий bash.
Однажды я написал удаленный установщик на python, который был доступен только в интрасети компании, и выполнил несколько скриптов через SSH-соединение, используя сертификаты. Это сработало, но на самом деле не было хорошим решением. Но я бы порекомендовал такой способ, чтобы иметь относительно безопасный способ взломать это вместе.
Webmin позволяет использовать команды через удаленный интерфейс.
Если вы не предпочитаете, чтобы ваш менеджер работал с Webmin, и хотели бы иметь простой пользовательский интерфейс, в котором ваш менеджер мог бы работать напрямую,
ДА, вы можете связать PHP и BASH, используя exec:
Создайте каталог с графическим интерфейсом пользователя (например, / var / www / html / MyManagerGUI /).
# mkdir /var/www/html/MyManagerGUI/
Поместите свои сценарии Bash в один каталог (например, / var / www / MyManagerGUI / Scripts /) и дайте им возможность выполнения.
# chmod +x /var/www/MyManagerGUI/Scripts/*
Создайте файл index.php в / var / www / MyManagerGUI /
В файле index.php вызовите сценарии Bash из PHP:
<?php exec("cd Scripts/;./MyBash arg1 arg2" , $output); ?>
где $output
- массив содержит все результаты вашего Bash, MyBash
это ваше имя на bash, и arg1 arg2
необязательные аргументы
Измените MyManagerGUI / владельца на Apahce
# chown -R apache:apache /var/www/MyManagerGUI/
Чтобы защитить свой графический интерфейс, вы можете добавить .htaccess файл в / var / www / MyManagerGUI /, например, добавление имени пользователя и пароля или принудительного доступа https.