Запуск shell сценария из php

Запуск shell сценария из PHPЗапуск сценария или команды из PHP предлагает ряд удобств для администратора. При соответствующей настройке сценарии и команды могут быть выполнены просто при обращении к странице через Интернет. Веб-сервер получает запрос, а затем передает его интерпретатору PHP. Используя специальные PHP-функции, можно заставить PHP запустить shell сценарий или команду автоматически.

Данный метод очень полезен, поскольку администратору больше не нужно будет выполнять авторизацию на сервере через SSH или каким-либо другим образом, чтобы запустить shell сценарий или команду на сервере. В данной статье показано, как правильно запускать shell сценарии и команды из PHP.

Как запускать shell команды из PHP

Функция shell_exec позволяет выполнять команды оболочки внутри PHP. Данную функцию мы и будем использовать для запуска команд и сценариев оболочки. Например, если необходимо получить список каталогов в текущем каталоге, можно использовать следующий код:

<?php
// для Linux
$result = shell_exec('ls -altp');

// для Windows
// $result = shell_exec('dir');
echo "<pre>$result</pre>";
?>

Обратите внимание, как используются HTML теги PRE, чтобы сохранить форматирование полученного вывода. В результате будет выведен список каталогов, похожий на тот, который можно увидеть при выполнении той же команды в терминале:

drwxr-xr-x 6 root root 4096 Jan 27 10:51 ./
drwxr-xr-x 29 root root 4096 Feb 25 13:25 ../
-rwx------ 4 root root 8900 Aug 21 23:50 backup-script.sh
drwxr-xr-x 8 root root 4096 Dec 20 13:56 temp/

Как выполнить shell сценарий из PHP

Принцип запуска Shell сценария из PHP такой же. Сначала необходимо создать shell сценарий и сохранить его где-нибудь на сервере. Предположим, что сценарий находится в файле /path/to/sample.sh и содержит:

#!/bin/bash
echo "Tutorial Arena rocks"

Сначала нужно сделать shell сценарий исполняемым, выполнив следующую команду:

chmod a+x sample.sh

Затем запустим только что созданный сценарий с помощью PHP. Хорошей идеей будет указать абсолютный путь к сценарию, как показано ниже:

<?php

$result = shell_exec('/path/to/sample.sh');
echo $result;

?>

При обращении к PHP сценарию из браузера мы увидим следующий вывод:

Tutorial Arena rocks

Теперь мы успешно выполнили shell сценарий из PHP.

Выполнение shell команд из PHP и безопасность

Как вы могли убедиться, из PHP довольно легко запускать сценарии или выполнять команды оболочки. Обязательно следуйте надлежащей практике создания кода, чтобы веб-сервер оставался в безопасности. Вряд ли вы захотите, чтобы злоумышленник имел возможность выполнять shell команды из вашего приложения. Не допускайте таких глупых ошибок, как передача выполняемых команд через методы POST или GET.

Лучшее, что можно сделать, это жестко прописать в коде выполняемые команды и shell сценарии, а затем защитить сам PHP сценарий, поместив в каталог, защищенный аутентификацией. Это минимальные требования к защите.

Надеемся, что данная статья по PHP была полезна, и вы полностью усвоили, как выполнять shell сценарии из PHP.

Поделитесь ссылкой если мы вам помогли!

Читайте также:

Создание сайта на Flash - преимущества и недостатки

Вирусы в ipad

Знакомства в интернете – стоит ли игра свеч?

Планшеты, выбор очевиден

Как сделать анимированные обои на рабочем столе

Добавить комментарий:

Минимум 100 символов.
Модераторы detected!

Вы ввели сообщение длиной символов

Три + Пять ? =