TrinityCore Debian10-11 масштабная статья

zgn1988

Dev WoW EMU
Модератор
Регистрация
31.10.2020
Сообщения
53
Реакции
46
Баллы
0
Возраст
35
Местоположение
Россия
Сайт
github.com
И так мы установили систему на личный сервер или купили host
начнем с установки командера и разрешение на запуск команд superuser (для нашего созданного юзера будет далее)
заходим на сервер пользователем который был создан при установке или выданный хостером и набираем
Код:
su // запросит пароль суперюзера root
apt install mc sudo

создаем пользователя из под которого будем работать и запускать сервер
Код:
adduser wow // после выполнения запросит пароль

далее выполним преднастройку
Код:
cd /etc/ssh/
nano sshd_config // откроется редактор ssh конфига
ищем строчки
Код:
#Port 22 //приведем к следующему стилю для изменения дефолтного порта
Port 7022 // теперь порт ssh 7022
ниже ищем
Код:
#PermitRootLogin чет еще будет написано
изменим
PermitRootLogin Yes // разрешаем логин root

сохранение файла Ctrl+X Shift+Y Enter

далее добавим новому пользователь возможность быть в группе sudo
Код:
cd /etc/
nano sudoers
после строки
root    ALL (ALL:ALL) ALL
wow   ALL (ALL:ALL) ALL // наш созданный пользователь

впринципе можно ребутнуть сервер
Код:
systemctl reboot
или перезапустить ssh сервис
Код:
systemctl restart ssh
закрываем терминал и запускаем снова но логинимся юзером wow незабываем что мы изменили ssh порт

устанавливаем нужный нам софт
Код:
apt-get update
sudo apt-get install git clang cmake make gcc g++ libmariadbclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server p7zip default-libmysqlclient-dev
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100

далее заранее преднастроим наш mysql сервер в качестве него установленна mariaDB
вводим команду
Код:
mysql_secure_installation // установка root пароля
далее введем пароль и на все вопросы жмем Enter или для прикола отвечаем Y оба варианта верны
далее преднастроим пользователя для сервера Warcraft
Код:
mysql -uroot -p
потребует root пароль который выше установили
CREATE USER 'wow'@'localhost' IDENTIFIED BY 'ваш пароль' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT USAGE ON * . * TO 'wow'@'localhost';
CREATE DATABASE `world` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `world` . * TO 'wow'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `characters` . * TO 'wow'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `auth` . * TO 'wow'@'localhost' WITH GRANT OPTION;
создали юзера wow и базы для сервера
выходим
exit или quit
переходим в домашний каталог и выкачиваем исходники и собираем
Код:
cd /home/wow/
git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git
cd TrinityCore
mkdir build && cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server -DTOOLS=0 //server папка создаться сама и будет с файлами сервера
make -j xx // количество ядер вашего процессора
как все закончится
make install

изменим расширение комнфигов они храняться в /home/wow/server/etc/
Код:
cd /home/wow/server/etc
cp worldserver.conf.dist worldserver.conf
cp authserver.conf.dist authserver.conf

далее настроим подключение к базам в конфигах открываем редактор и правим
Код:
nano worldserver.conf
и конечно
nano authserver.conf

накатываем базы
Код:
mysql -uwow -p auth < /home/wow/TrinityCore/sql/base/auth_database.sql
mysql -uwow -p characters < /home/wow/TrinityCore/sql/base/characters_database.sql

качаем на домашний ПК world базу c репозитория TrinityCore, распаковываем архив и для удобства ее переименуем в world.sql
средствами SFTP допустим программа WinSCP загружаем ее в каталог /home/wow/ и заливаем ее
Код:
mysql -uwow -p world < /home/wow/world.sql

так же загружаем на сервер карты и настраиваем конфиг где они лежат допустим я кидаю их в папку /home/wow/server/data/
вы можете бросить их просто в /home/wow/server/
в конфиге указываем полный путь из корня пример
Код:
DataDir = "/home/wow/server/"

далее мы хотим автоматизировать запуск и заодно авторестарт при падении сервера
идем в каталог и создаем 2 файла
Код:
cd /home/wow/server/bin/
tourch auth.sh
tourch world.sh

далее делаем файлы исполняемыми
Код:
sudo chmod +x auth.sh
sudo chmod +x world.sh

добавляем в файлы скрипт
Код:
nano auth.sh
и вставляем текст
#!/bin/bash
while :; do
/home/wow/server/bin/authserver -c /home/wow/server/etc/authserver.conf
sleep 10
done

для world сервера мы изменим параметр sleep
Код:
nano world.sh
#!/bin/bash
while :; do
/home/wow/server/bin/worldserver -c /home/wow/server/etc/worldserver.conf
sleep 30
done

далее установим screen
Код:
sudo apt install screen

и запускаем сервер командами
Код:
screen -AmdS world /home/wow/server/bin/world.sh
screen -AmdS auth /home/wow/server/bin/auth.sh

смотрим запустились процессы
Код:
screen -ls // увидим 2 процесса auth и world

для подключение к консоли сервера
Код:
screen -R world
Ctrl+C // убьет процесс
Ctrl+A+D закроет screen и переведет вас в консоль сервера не убивая процесс

удачи, впринципе это всего лишь базовая настройка
 
Последнее редактирование:

WinWoolF

New member
Команда форума
Администратор
Регистрация
13.10.2013
Сообщения
5 354
Реакции
450
Баллы
0
Полезно. Но опять же zgn1988 ты как всегда краток)), не хватает более полных пояснений к некоторым пунктам, зачем это делается и что даёт.
 
Верх Низ