запуск сервера через сайт

Geraldin

Участник
Сообщения
1
Реакции
0
народ,а что, для того чтобы серв работал нужно комп постоянно включенным держать?
 

aaz1kkkk

Участник
Сообщения
220
Реакции
91
народ,а что, для того чтобы серв работал нужно комп постоянно включенным держать?

Для бесперебойной работы сервера необходимо чтобы комп был выключен. А если еще разобрать его на отдельные комплектующие то 100% аптайм 24/7/365 гарантирован! Я вот вобще сервак в телефоне держу (кстати тоже выключенном) и норм все пашет. ток одно неудобство - чтоб позвонить включать его приходится. но это ведь мелочи! :-) Главное чтоб публика была довольна и счастлива!
 

kv.acid

Участник
Сообщения
2,025
Реакции
755
Оффтоп
 

LEII4A

Участник
Сообщения
741
Реакции
135
ну вы мочите, это просто ололо трололо =)
 

BMW M6

Участник
Сообщения
1,217
Реакции
534
Php скрипт работает на модуле php2.so, для это его нужно до установить вот ссылочка на сайт php

PHP:
if (isset($_POST["submit"])) {

$ip ="77.243.98.236"; // вводим ип сервера (игровой сервер)
$port="22"; // порт вашего ssh2 сервера (игровой сервер)
$login="root";   // ваш логин на юзера в системе Linux (игровой сервер)
$pass="xxxxxxxxxx";  // ваш пароль на юзера в системе Linux (игровой сервер)
$path ="/games/css_27015/runserver.sh"; //путь до вашего файла перезапуска сервера (во вложенных файлах есть пример)

if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");

if(!($con = ssh2_connect($ip, $port))){
echo "fail: unable to establish connection\n";
} else {
                        
if(!ssh2_auth_password($con, $login, $pass)) {
echo "fail: unable to authenticate\n";

} else {
// allright, we're in!
  echo "okay: logged in...\n";
sleep("2");

// execute a command
if ($_POST["status"] == '0') {
echo "fail command";
} elseif ($_POST["status"] == 'stop') {
$p = $path ." stop";
                                                        
} elseif ($_POST["status"] == 'start'){
$p = $path ." start";
                                                        
}
}

if(!($stream = ssh2_exec($con, $p)) ){
echo "fail: unable to execute command\n";
} else{
                                                                
echo "Ваш запрос выполнен";
}
}
}
?>

<form method="post" enctype="multipart/form-data" name="edit">
<table cellspacing="0" cellpadding="0" width="100%" >
 <tr>
  <td>
   <table cellspacing="1" cellpadding="3" width="100%">
    <tr >
     <td class="ts2_title">Сервер:</td>
     <td width="100%">
     <select name="status" style="width: 200;" class='is1'>
     <option value='0'>Выберите статус</option>
     <option value='stop'>Stop servers</option>
     <option value='start'>Start servers</option>
      </select>
     </td>
    </tr>
    <tr>
     <td colspan="2" align="center">
     <button type="submit" name="submit">
     <img class="save" src="/images/user_add.png"/>
     <span>Выполнить</span>
     </button>
     </td>
    </tr>

   </table>
  </td>
 </tr>
</table>
</form> 
<? } ?>

з.ы. Автор aby.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
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, на винде такого нет
PHP:
<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
 

Seryoga Kondratyev

Участник
Сообщения
1
Реакции
0
Сервер запускают через 2 комп так и хостинг с меню!Тоесть вам нужен 2 комп,1 комп держит сервера и сайт был бы у меня 2 компа я бы тоже так держал)
 

sintez

★CS.ORG.RU★
Сообщения
272
Реакции
45
скинь у кого есть готовый для css под Linux
 

The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
KorDen, с авторизацией сделать — не проблема.
Во вложении — скрипт, рассчитанный на одного пользователя, но сделать на больше количество тоже можно.
По идее, должно работать.

Пароль и логин менять в файле servercontrolpanel/config.php
И нужно сменить права доступа к файлу config.php на 640.
 

Вложения

  • s_control.zip
    2.6 КБ · Просмотры: 34
Сверху Снизу