BMW M6 Автор автором, я уже то что ты мне присылал переделал прилично, раз уж ты решил выложить в паблик, выложу и переделанную Stand-alone версию для одного сервера
Подразумевается что файлы запуска лежат в директории по адресу $path и называются соединением слов start/restart/stop/upd и значения $file (например start_css_1.sh), имя screen-сессии задается строчками
if(strpos($pstr, '.css_1')) $state=true;
if(strpos($pstr, '.upd_css_1')) $updating=true;
(точка нужна для проверки, сами сессии сервера и обновления называются css_1 и upd_css_1)
Ну и напомню что SSH2 это Linux, на винде такого нет
<html>
<head>
<title>Управление игровыми серверами</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<?php
if (isset($_POST["submit"])) echo '<META HTTP-EQUIV="REFRESH" CONTENT="1">';
?>
</head><body>
<?php
$ip = "127.0.0.1";
$port = "22";
$login = "css";
$pass = "password";
$path = "/home/css/";
$file= "_css_1.sh";
if (!function_exists("ssh2_connect")) die("<font color=red>Модуль SSH2 не найден!</font>");
if(!($con = ssh2_connect($ip, $port))) die("<font color=red>Ошибка соединения!</font>");
if(!ssh2_auth_password($con, $login, $pass)) die("<font color=red>Ошибка авторизации!</font>");
$str = ssh2_exec($con, 'screen -ls');
stream_set_blocking($str, true);
$pstr=stream_get_contents($str);
fclose($str);
$state=false;
$updating=false;
if(strpos($pstr, '.css_1')) $state=true;
if(strpos($pstr, '.upd_css_1')) $updating=true;
?>
<form method="post" enctype="multipart/form-data" name="edit">
Состояние: <?php
if ($state) echo "<font color=green><b>Запущен";
else echo "<font color=red><b>Остановлен";
if ($updating) echo ", </b></font><font color=blue><i>Обновляется</i></font>";
?></b></font><br>
Управление: <input type=radio name=status value=start <?php if($state) echo "disabled" ?>><font color=#009900>Запустить </font>
<input type=radio name=status value=restart <?php if(!($state)) echo "disabled" ?>><font color=#BBBB00>Перезапустить </font>
<input type=radio name=status value=stop <?php if(!($state)) echo "disabled" ?>><font color=#990000>Остановить </font>
<input type=radio name=status value=upd <?php if($updating) echo "disabled" ?>><font color=#000099>Обновить </font>
<button type="submit" name="submit">Выполнить</button>
</form>
<?php
// execute a command
if (isset($_POST["submit"])) {
if ($_POST["status"]=="") echo "<script>alert('Неверная комманда')</script>";
else
{
$p = $path . $_POST["status"] . $file;
if(!($stream = ssh2_exec($con, $p)) ) echo "Ошибка выполнения комманды";
else echo "<script>alert('Выполнено')</script>";
}
}
?></body></html>
PS: сейчас еще делаю версию с массивами, для управления несколькими серверами, как доделаю наверно создам отдельную тему с подробны описанием.
Так же напомню, что тут нет никакой авторизации, то есть любой кто буде знать ссылку сможет управлять сервером. защиту придется делать например с помощью htpasswd