Оголошення

Згорнути
Поки немає оголошень.

Установка HLStatsX с нуля

Згорнути
Це закріплена тема.
X
X
 
  • Фільтр
  • Час
  • Показати
Очистити все
нові повідомлення

  • Установка HLStatsX с нуля

    Сегодня я Вам расскажу как ставить мега-статистику HLStatsX на свой выделенный сервер(а) под Linux.
    И так, начнем.
    Для корректной работы нам понадобятся установленные PHP 5+, Perl-5+, php-gd-2+, mysql 5+ (установку всех этих компонентов мы рассмотрим ниже пошагово).

    Внимание! Вся документация (команды, скриншоты и т.п.) предоставляется исключительно под серверный дистрибутив Linux - Debian.

    Установка дополнительных компонентов

    1. Ставим PHP (предпочтительно 5 версию (а именно 5.2.6)), делается это командой:

    apt-get install php5

    Подробно всё видно на скриншоте:



    Потом устанавливаем библиотеку GD для PHP командой:

    apt-get install php5-gd

    Подробно видно на скриншоте:



    [SPOILER=Процесс установки]uasource:~# apt-get install php5-gd
    Чтение списков пакетов... Готово
    Построение дерева зависимостей
    Чтение информации о состоянии... Готово
    НОВЫЕ пакеты, которые будут установлены:
    php5-gd
    обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
    Необходимо скачать 0B/37,0kB архивов.
    После данной операции, объём занятого дискового пространства возрастёт на 143kB.
    Выбор ранее не выбранного пакета php5-gd.
    (Чтение базы данных... на данный момент установлено 27659 файлов и каталогов.)
    Распаковывается пакет php5-gd (из файла .../php5-gd_5.2.6.dfsg.1-1+lenny9_amd64.deb)...
    Настраивается пакет php5-gd (5.2.6.dfsg.1-1+lenny9) ...
    uasource:~#
    [/SPOILER]

    2. Так как Perl уже предустановлен в Debian'e не будем рассматривать установку его с нуля, просто поставим нужные библиотеки в него через ppm (perl package manager).

    Вызываем PPM командой:

    perl -MCPAN -eshell

    Подробно видно на картинке:



    3. Теперь доставляем необходимые библиотеки, а именно DBD::MySQL и DBI
    Сначала ставим DBD::MySQL.

    Пишем в открытой ppm консоли (пишем с учетом регистра, это важно):

    install DBD::MySQL

    Некоторый текст установки видно на картинке:



    Всё изображение не выкладываю, т.к. много чего там отображается.
    В конце должно быть всё successful install.

    Далее ставим DBI, процедура аналогичная.

    install DBI

    После успешной установки этих компонентов преступаем до установки MySQL 5.

    Делается это командой:

    apt-get install mysql-server mysql-client

    (В самом последнем дистрибутиве автоматически установится 5-я версия mysql'a после выполнения команды выше).

    На скриншоте подробно видно установку mysql версии 5.0.51а



    [SPOILER=Текст установки]uasource:~# apt-get install mysql-server mysql-client
    Чтение списков пакетов... Готово
    Построение дерева зависимостей
    Чтение информации о состоянии... Готово
    НОВЫЕ пакеты, которые будут установлены:
    mysql-client mysql-server
    обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
    Необходимо скачать 0B/110kB архивов.
    После данной операции, объём занятого дискового пространства возрастёт на 180kB.
    Выбор ранее не выбранного пакета mysql-client.
    (Чтение базы данных... на данный момент установлено 27655 файлов и каталогов.)
    Распаковывается пакет mysql-client (из файла .../mysql-client_5.0.51a-24+lenny5_all.deb)...
    Выбор ранее не выбранного пакета mysql-server.
    Распаковывается пакет mysql-server (из файла .../mysql-server_5.0.51a-24+lenny5_all.deb)...
    Stopping MySQL database server: mysqld.
    Настраивается пакет mysql-client (5.0.51a-24+lenny5) ...
    Настраивается пакет mysql-server (5.0.51a-24+lenny5) ...
    uasource:~#
    [/SPOILER]

    Установка HLStatsX V1.20 Release Candidate 2

    Качаем HLStatsX V1.20 Release Candidate 2 с нашего сервера:

    http://software.uasource.com/files/HLstatsX_V1.20RC2.zip

    Распаковываем архив и видим такие папки и файлы:

    * hitbox - папка с анимационными файлами .swf (для показа статистики попаданий)
    * hlstatsinc - папка с .inc файлами (используются для web-интерфейса)
    * perl - папка с .pl файлами (используются для сервера, связка сервера с БД)
    * plugin - папка с аддонами для сервера (sourcemod)
    * upgrade - папка с файлами для обновления БД
    * web - папка с файлами самого web-интерфейса
    * changelog - файл со списком изменений в этой версии
    * game_css.sql - импорт для создания игры Counter-Strike: Source в БД
    * game_css2.sql - импорт для создания игры Counter-Strike: Source2 в БД
    * game_ctf.sql - импорт для создания игры Half-Life 2 CTF в БД
    * game_ctf2.sql - импорт для создания игры Half-Life 2 CTF2 в БД
    * game_dods.sql - импорт для создания игры Day of Defeat: Source в БД
    * game_dods2.sql - импорт для создания игры Day of Defeat: Source2 в БД
    * game_hl2mp.sql - импорт для создания игры Half-Life 2: Deathmatch в БД
    * game_hl2mp2.sql - импорт для создания игры Half-Life 2: Deathmatch2 в БД
    * hlstats.sql - главный импорт HLStatsX (создает все таблицы и настройки), его нужно самым первым импортировать.
    * LICENSE - файл лицензии
    * readme - тут понятно... read me
    * version - информация о версии

    Теперь импортируем файлы hlstats.sql и game_css.sql в базу данных.
    Можно это сделать 2 способами.
    1. Через phpmyadmin
    2. Через консоль

    Мы рассмотрим 1 способ, а именно phpmyadmin.

    Заходим на адрес http://адрес сайта/phpmyadmin (или где у вас там установлен phpmyadmin).

    Создаем базу данных с названием hlstats.


    -------------------------------------------------------------------------


    Нажимаем на кнопку "Импорт".



    Видим такую картину:



    Выбираем файл hlstats.sql и нажимаем OK.

    Должно все отлично импортироваться. Если нет, отпишите ошибку в этой теме.

    Потом таким-же образом импортируем файл game_css.sql.

    Все, наша база данных готова.

    Преступаем к установке web-интерфейса.

    Копируем содержимое папки web в папку нашего веб-сервера, по стандарту это /var/www/ можно там создать папку hlstatsx и получатся, что надо скопировать содержимое папки web в папку /var/www/hlstatsx/.
    Теперь открываем файл config.php в корне папки /var/www/hlstatsx/.
    Находим там строку: define("DB_NAME", ""); и вписываем туда имя БД, в нашем случае hlstats. Это будет выглядеть так:

    define("DB_NAME", "hlstats");

    Так-же само делаем и с

    define("DB_USER", ""); // здесь вводим юзера базы данных

    define("DB_PASS", ""); // здесь вводим пароль от юзера базы данных


    Потом копируем содержимое папки hlstatsinc в ранее созданную папку например /srv/hlstatsinc
    И вводим в файле config.php в поле:

    define("INCLUDE_PATH", "");

    define("INCLUDE_PATH", "/srv/hlstatsinc");

    Так будет безопаснее.

    define("MODE", "Normal"); // Normal - для интернет-серверов, LAN - для локальных серверов , NameTrack - статистика по нику
    define("IMAGE_PATH_URL", ""); // здесь вводим адрес http://адрес сайта/hlstatsx
    define("IMAGE_PATH", ""); // здесь вводим /var/www/hlstatsx/hlstatsimg/progress
    define("INGAME_PATH", ""); // здесь вводим адрес /srv/hlstatsinc/ingame
    define("PLATFORM", "POSIX");
    define("SHOW_GOOGLE_MAP", 0); // ставим 1

    Заходим на адрес и обязательно авторизируемся:

    http://www.google.com/apis/maps/signup.html

    Вводим там свой домен.


    Копируем самый первый код и вставляем в строку:

    define("GOOGLE_MAP_KEY", "");

    Например:

    define("GOOGLE_MAP_KEY", "ABQIAAAAkmIY0LdEFgJcdPdr5g7esBQGYRESfD8FRuN8uHn0h 0oD88rO_BS56fqVQpYNVS0F8SC-hLNkt7ZMzQ");

    Задаем chmod на папку /var/www/hlstatsx/hlstatsimg/progress - 755.

    С веб-интерфейсом закончили, займемся серверной стороной.


    Создаем папку /srv/perl и копируем туда содержимое папки perl из архива HLstatsX_V1.20RC2.zip.
    Открываем файл /srv/perl/hlstats.conf и видим такой текст:

    ##
    ## Database Settings
    ##

    # DBHost - Database server "address" or "address:port". Address can be an IP or
    # a hostname. The default MySQL port is 3306 (tcp).
    DBHost "localhost"

    # DBUsername - User to connect to the database as.
    DBUsername "юзер базы данных"

    # DBPassword - Password for the database user.
    DBPassword "пароль от юзера базы данных"

    # DBName - Name of the database to use.
    DBName "hlstats" # имя базы данных

    # DBLowPriority - Use INSERT DELAYED and DELETE LOW_PRIORITY for some queries.
    # This can give better performance, but may make statistics less
    # "real time". 1=on 0=off
    DBLowPriority 0 // 1 - Реал тайм статистика, 0 - соответственно не реал тайм


    ##
    ## UDP Socket Settings (should match "logaddress ip port" on the game servers)
    ##

    # BindIP - IP address to bind to (leave empty to use all interfaces).
    BindIP "127.0.0.1" // ip адрес сервера

    # Port - Port to listen on for log data from the game servers.
    Port 27500 // порт не трогаем и лучше открываем его в iptables'ах всяких.



    Потом ищем в файле:

    # Standard configuration

    и ниже видим такой текст:

    Servers[0] = ("AddressPort" => "xxx.xxx.xxx.xxx:xxxxx",
    "MinPlayers" => "6",
    "AdminContact" => "Tobi@hlstatsx.com",
    "HLStatsURL" => "http://www.hlstatsx.com",
    "DisplayResultsInBrowser" => "0",
    "MasterServerData" => "7",
    "MasterServerInterval" => "200",
    "BroadCastEvents" => "0",
    "BroadCastPlayerActions" => "0",
    "BroadCastEventsCommand" => "say",
    "BroadCastEventsCommandSteamid" => "0",
    "BroadCastEventsCommandAnnounce" => "say",
    "PlayerEvents" => "1",
    "PlayerEventsCommand" => "say",
    "PlayerEventsCommandSteamid" => "0",
    "PlayerEventsCommandOSD" => "",
    "PlayerEventsAdminCommand" => "",
    "ShowStats" => "1",
    "TKPenalty" => "50",
    "SuicidePenalty" => "5",
    "AutoTeamBalance" => "0",
    "AutoBanRetry" => "0",
    "TrackServerLoad" => "1",
    "MinimumPlayersRank" => "0",
    "Admins" => "",
    "SwitchAdmins" => "0",
    "IgnoreBots" => "1",
    "SkillMode" => "0",
    "GameType" => "0",
    "EnablePublicCommands" => "1",
    "Mod" => "")


    Теперь редактируем под себя уже с описанием:

    Servers[0] = ("AddressPort" => "xxx.xxx.xxx.xxx:xxxxx", // адрес вашего сервера вместе с портом
    "MinPlayers" => "6", // минимальное количество игроков для начала учета статистики
    "AdminContact" => "Tobi@hlstatsx.com", // емэйл адрес администратора
    "HLStatsURL" => "http://www.hlstatsx.com", // адрес страницы со статистикой
    "DisplayResultsInBrowser" => "0", // показывать результат в отдельном окне (фрейме)
    "MasterServerData" => "7", // время обращения к мастер-серверу hlstatsx
    "MasterServerInterval" => "200", // интервал обращения к мастер серверу
    "BroadCastEvents" => "0", // будут ли все события транслироваться на сервер через rcon
    "BroadCastPlayerActions" => "0", // есть ли вещание в игре. 1 - убили заложника, заложили бомбу и т.п., 0 - выключено
    "BroadCastEventsCommand" => "say", // команда для трансляции событий
    "BroadCastEventsCommandSteamid" => "0", // это не трогаем
    "BroadCastEventsCommandAnnounce" => "say", // это не трогаем
    "PlayerEvents" => "1", // определяет будут ли игроки использовать дополнительные команды - /skill и т.п.
    "PlayerEventsCommand" => "say", // с помощью какой команды отображать события
    "PlayerEventsCommandSteamid" => "0", // требовать второй аргумент от игроков - steamid
    "PlayerEventsCommandOSD" => "", // отображать статистику в amx стиле "/rank", "/session", "/kpd" и т.п.
    "PlayerEventsAdminCommand" => "", // некоторые сообщения (только для администраторов)
    "ShowStats" => "1", // отображать статистику
    "TKPenalty" => "50", // сколько снимать очков за убийство своего
    "SuicidePenalty" => "5", // сколько снимать очков за самоубийство
    "AutoTeamBalance" => "0", // авто баланс команд
    "AutoBanRetry" => "0", // автобан игроков на 5 минут, при реконнекте (переподключении)
    "TrackServerLoad" => "1", // сохранять каждые 5 минут сколько игроков на сервере
    "MinimumPlayersRank" => "0", // минимальное место для игрока играющего на сервере (например топ100 сервер)
    "Admins" => "", // steamid администраторов (STEAM_0:1:XXX)
    "SwitchAdmins" => "0", // влияет ли автобаланс на админов
    "IgnoreBots" => "1", // не учитывать ботов в статистике
    "SkillMode" => "0", // это тоже не трогаем
    "GameType" => "0", // типа игры
    "EnablePublicCommands" => "1", // включить публичные команды
    "Mod" => "") // мод сервера (SOURCEMOD - sourcemod, MINISTATS - stats minimum, BEETLE - beetles mod, MANI - mani-admin-plugin.)

    Всё настроили.
    Идем в файл сервера: cfg/autoexec.cfg (если такого нету, создаем) и вписываем туда:

    logaddress_add: 127.0.0.1:27500 // только лучше указывайте свой интернет адрес


    Заходим на страницу статистики, нажимаем на кнопку Admin:

    --------------- Скоро будет дописано ----------------

    Запускаем hlstats.pl и сервер.

    Заходим на сервер, сворачиваем игру, заходим на адрес http://адрес сайта/hlstatsx/ и видим там наш сервер - список игроков, карта и т.п.

    Радуемся. Наша статистику установлена.

    Автор документации: Дмитрий aka d1man.
    Специально для uasource.com
Обробка...
X