Решение проблем с запуском серверов GameAP: различия между версиями

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску
 
Строка 77: Строка 77:
 
== Если ничего не помогло ==
 
== Если ничего не помогло ==
 
Если ничего из вышеперечисленного не помогло, попробуйте подключиться вручную к консоли вашего сервера и запустить игровой сервер вручную, возможно он не может запуститься из-за каких-либо настроек, библиотек и т.д.
 
Если ничего из вышеперечисленного не помогло, попробуйте подключиться вручную к консоли вашего сервера и запустить игровой сервер вручную, возможно он не может запуститься из-за каких-либо настроек, библиотек и т.д.
 +
 +
{{Категория:Документация_GameAP}}

Текущая версия на 12:31, 15 мая 2014


Здесь обсуждается наиболее частая проблема, связанная с использованием web-панели управления игровыми серверами GameAP - невозможно запустить игровой сервер. Локальный сервер - сервер находящийся на одной машине (выделенном сервере) с АдминПанелью и управляемый при помощи обычных shell команд, а не SSH или Telnet. Если панель расположена на одной машине, но управляется через SSH или Telnet, то такой сервер Панель считает за удаленный.

Указаны ли необходимые настройки игрового сервера?

Если вы используете стандартные данные АдминПанели, то зайдите в настройки игрового сервера (Главная -> выбираем сервер -> другие команды -> Настройки сервера), укажите все параметры для сервера, некоторые параметры должны указываться в определенных пределах и быть валидными, если указывается карта по умолчанию, то эта карта должна присутствовать на игровом сервере.

Проверка команд запуска

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

./server.sh start <директория_игрового_сервера> <имя_screen> <IP> <порт> <"команда_запуска_игрового_сервера"> <пользователь>
server.exe start <директория_игрового_сервера> <имя_сервера> <IP> <порт> <"команда_запуска_игрового_сервера">

Например, для запуска Counter-Strike сервера команда может быть следующей

./server.sh start {dir} {name} {ip} {port} "./hlds_run -console -game cstrike +ip {ip} +port {port} +map de_dust2"
server.exe start {dir} {name} {ip} {port} "hlds.exe -console -game cstrike +ip {ip} +port {port} +map de_dust2"

Обратите внимание, что в случае Linux, необходимо указать ./ перед исполняемым файлом АдминПанели.

Проверка путей

Предполагается, что в некоторой директории находится исполняемый файл АдминПанели (server.sh или server.exe), через который панель управляет игровыми серверами. Во внутренних директориях должны располагаться файлы игровых серверов. Если у вас Counter-Strike 1.6 сервер, то исполняемым файлом игрового сервера будет hlds_run или hlds.exe. Допустим путь до вашего игрового сервера следующий:

/путь/до/server.sh/путь/до/hlds_run

В пути к исполняемым файлам админ панели должен быть указан путь до server.sh, например:

/путь/до/server.sh

В пути игрового сервера должен быть указан путь до исполняемого файла игрового сервера (hlds_run, hlds.exe, srcds_run и т.п.). Например:

путь/до/hlds_run

Пример с Windows. Файлы server.exe и psexec.exe должны располагаться в директории

C:\Servers

А во всех внутренних директория должны располагаться игровые серверы, например сервер игры Half-Life тогда будет располагаться в

C:\Servers\my_hl

В этой директории должен находится hlds.exe

Примечание

Файлы hlds_run и server.sh (Для Windows - hlds.exe и server.exe) не должны располагаться в одной директории. Расположите исполняемые файлы GameAP в директории выше каталога с игровым сервером.

Проверка прав

У исполняемых файлов админ панели и игрового сервера должны быть права на выполнения, если их не будет, то сервер не будет запущен.

Если у вас локальный Linux сервер, то необходимо дать доступ пользователю, от которого запущен Web-сервер sudo права на исполняемый файл панели (server.sh). Откройте файл /etc/sudoers и добавьте в конец:

www-data ALL = NOPASSWD: /путь/к/server.sh

Где www-data - пользователь, от которого запущен web-сервер.

Правильно ли установлен сервер?

Попробуйте запустить сервер вручную, без помощи АдминПанели. Используйте команду, которую написала вам панель, при запуске сервера, либо найдите ее в логах. Если сервер запускается в консоли, но панель не может его запустить - проверьте права пользователей от которых запущен сервер. В некоторых случаях, обычно на виртуальных серверах, требуется задать CPU_MHZ, для этого откройте исполняемый файл server.sh и добавьте строчку после #!/bin/bash

export CPU_MHZ=2000

где 2000 - частота процессора

Unable to determine CPU Frequency. Try defining CPU_MHZ

Подобная ошибка обычно появляется на виртуальных серверах при запуске игровых серверов Valve или SteamCMD. Откройте файл server.sh и добавьте в него строчку

export CPU_MHZ=2000

А чтобы игровые серверы могли устанавливаться, необходимо добавить эту же строчку в файл steamcmd.sh

Установлены ли необходимые приложения?

Для Linux сервера должен быть установлен Screen

apt-get install screen

Для удаленных серверов Linux и Windows должны быть установлены SSH или Telnet. Для php должен быть установлен модуль ssh2, если используется протокол управления SSH.

В некоторых случаях игровой сервер не может быть запущен из-за отсутствия 32-битных библиотек, если используется 64-битный дистрибутив Linux

dpkg --add-architecture i386
apt-get update
apt-get install ia32-libs

(при необходимости добавьте sudo)

Пароли и пользователи

Панель не умеет запускать игровые серверы, если при отправке команды запуска запрашивается пароль.

Разберем подробнее, если в SSH панель работает от пользователя ssh_user, а в настройке "Пользователь, от которого будет запущен сервер (Linux)" указан game_user, то при соединении с SSH и вводе в консоли

su game_user

мы должны перейти в сессию пользователя game_user без ввода пароля.

Если ничего не помогло

Если ничего из вышеперечисленного не помогло, попробуйте подключиться вручную к консоли вашего сервера и запустить игровой сервер вручную, возможно он не может запуститься из-за каких-либо настроек, библиотек и т.д.