Skip to content

Инструкция по установке World of Warcraft: Wrath of the Lich King сервера на ядре AzerothCore в Debian 12

License

Notifications You must be signed in to change notification settings

biosfree/azerothcore-install-help

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Установка logo Azerothcore 2024 🚀

  1. Подготовка OS Debian 12

  2. Подготовка AzerothCore

  3. Компиляция и настройка Azerothcore

  4. Извлечения данных для сервера

  5. Заполнение SQL баз данных AzerothCore

  6. Установка дополнений для AzerothCore

  7. Первый запуск сервера

  8. Настрока запуска сервера как службы

  9. Поддержка сервера в актуальном состояние

Подготовка OS Debian 12 👆

Установка MySQL 8.4 👈

Загрузите последний *.deb c официального MySQL APT Repository в /tmp

wget -P /tmp https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb

Установка последней версии mysql-lts (8.4) без вывода каких-либо пользовательских запросов:

sudo apt update
sudo DEBIAN_FRONTEND="noninteractive" apt install /tmp/mysql-apt-config_0.8.32-1_all.deb -y
sudo apt update
sudo DEBIAN_FRONTEND="noninteractive" apt install mysql-server -y

Note

При установке MySQL, новая учетная запись root будет защищена аутентификацией через auth_socket, поэтому вы можете спокойно оставить поле с паролем для root пустым!

Tip

Или воспользуйтесь интерактивным вариантом установки:

sudo apt update
sudo apt install /tmp/mysql-apt-config_0.8.32-1_all.deb
sudo apt update
sudo apt install mysql-server

Установка основных программ и библиотек 👈

sudo apt update && sudo apt install git cmake make gcc g++ clang libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev lsb-release -y

Tip

Так же, для использования скрипта acore.sh, могут пригодится дополнительные утилиты (такие как: unzip , curl), которые можно установить выборочно...

sudo apt update && sudo apt install unzip curl -y

❗ или воспользоваться самим скриптом acore.sh и установить сразу все зависимости:

~/azerothcore/acore.sh install-deps

Подготовка AzerothCore 👆

Загрузка исходников AzerothCore 👈

Загрузите исходники c официального репозитория

git -C ~ clone https://github.com/azerothcore/azerothcore-wotlk.git azerothcore --depth 1

Настройка и исправления для acore.sh 👈

Создание config.sh

cp -f ~/azerothcore/conf/dist/config.sh ~/azerothcore/conf/

Настройка config.sh

sed -i 's|BINPATH="$AC_PATH_ROOT/env/dist"|BINPATH="'${HOME}'/.local"|' ~/azerothcore/conf/config.sh
sed -i 's|CTOOLS_BUILD=${CTOOLS_BUILD:-none}|CTOOLS_BUILD="all"|' ~/azerothcore/conf/config.sh

Исправления для azerothcore functions.sh

sed -i 's/sudo cmake --install . --config $CTYPE/cmake --install . --config $CTYPE/' ~/azerothcore/apps/compiler/includes/functions.sh
sed -i '/find "$AC_BINPATH_FULL" /s/^/#/' ~/azerothcore/apps/compiler/includes/functions.sh

Создание чистой базы даных AzerothCore 👈

  • Зайти в консоль MySQL: sudo mysql
  • Вставить sql-запросы:
DROP USER IF EXISTS 'acore'@'localhost';
CREATE USER 'acore'@'localhost' IDENTIFIED BY 'acore' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
CREATE DATABASE `acore_world` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE `acore_characters` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE `acore_auth` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON `acore_world` . * TO 'acore'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `acore_characters` . * TO 'acore'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `acore_auth` . * TO 'acore'@'localhost' WITH GRANT OPTION;
EXIT

Important

Настоятельно рекомендуется сразу же изменить пароль на случайный и сохранить в файл: ~\acore_sql_pass.txt.

cd ~ && sudo mysql -e 'SET PASSWORD FOR 'acore'@'localhost' TO RANDOM;' | awk 'FNR == 4 {print $6}' | tee acore_sql_pass.txt

Tip

Для создания чистой базы данных и пользователя можно воспользоваться SQL заготовками из загруженных только что исходников AzerothCore

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

sudo mysql < ~/azerothcore/data/sql/create/create_mysql.sql"

А для удаления всей базы данных AzerothCore воспользуйтесь:

sudo mysql < ~/azerothcore/data/sql/create/drop_mysql_8.sql

или удалить вручную через консоль MySQL

sudo mysql
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'acore'@'localhost';
DROP USER 'acore'@'localhost';
DROP DATABASE IF EXISTS `acore_world`;
DROP DATABASE IF EXISTS `acore_characters`;
DROP DATABASE IF EXISTS `acore_auth`;
EXIT

Подсказки для управления безопасностью MySQL сервера:

Note

Зайходим в консоль MySQL сервера под пользователем root если при установки не указывали пароль:

sudo mysql

Или с паролем если указывали:

sudo mysql -p

Чтобы посмотреть для всех пользователей в MySQL используемый метод аунтификации

SELECT user, host, plugin, Super_priv from mysql.user;

Чтобы изменит у пользователя метод аунтификации выбираем одну команду из примера:

ALTER USER 'acore'@'localhost' IDENTIFIED WITH auth_socket;
ALTER USER 'acore'@'localhost' IDENTIFIED BY 'ВАШ-ДЛИННЫЙ-И-СЛОЖНЫЙ-ПАРОЛЬ';
ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'ВАШ-ДЛИННЫЙ-И-СЛОЖНЫЙ-ПАРОЛЬ';

Чтобы дать MySQL пользователю acore привелегии root:

GRANT ALL PRIVILEGES ON * . * TO 'acore'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT

Компиляция и настройка Azerothcore 👆

Первая компиляция немодифицированного сервера:

mkdir ~/azerothcore/build
cd ~/azerothcore/build
cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/.local/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all
make -j $(nproc) install

Или используя acore.sh

./azerothcore/acore.sh compiler all

Note

После успешной сборки сервера со всеми утилитами, в конфигурационный файл можно вернуть запрет на сборку дополнительных инструментов.

sed -i 's|CTOOLS_BUILD="all"|CTOOLS_BUILD=${CTOOLS_BUILD:-none}|' ~/azerothcore/conf/config.sh

Настройка основных конфигурационных файлов:

for i in $( ls ~/.local/etc/*.dist ); do cp -n $i ${i%.*}; done
sed -i 's|^DataDir = .*|DataDir = "'${HOME}'/wowclient/wotlk"|' ~/.local/etc/worldserver.conf
sed -i 's|^RealmZone = .*|RealmZone = 12|' ~/.local/etc/worldserver.conf
sed -i 's|^DBC.Locale = .*|DBC.Locale = 8|' ~/.local/etc/worldserver.conf
sed -i 's|^LogsDir = .*|LogsDir = "'${HOME}'/logs"|' ~/.local/etc/*.conf
sed -i 's|^TempDir = .*|TempDir = "'${HOME}'"|' ~/.local/etc/*.conf

Important

если используем свой пароль для MySQL пользователя acore:

Замените ACORESQLPASS на ваш пароль. Чтобы посмотреть сгенерированный пароль запустите: cat ~/acore_sql_pass.txt

sed -i 's/= "127.0.0.1;3306;acore;acore;/= "127.0.0.1;3306;acore;ACORESQLPASS;/' ~/.local/etc/*.conf

Убедитесь что директория logs сушествует и при необходимости создайте её:

mkdir ~/logs

Tip

Для более тонкой настройки вашего сервера отредактируйте конфигурационные файлы в текстовом редакторе

nano ~/.local/etc/authserver.conf
nano ~/.local/etc/worldserver.conf

Извлечения данных для сервера 👆

Подготовка диска для храниения данных 👈

Добавление и разметка нового диска для данных

lsblk
sudo fdisk -l /dev/sdb
sudo fdisk /dev/sdb
[n] [p] [w]
sudo mkfs.ext4 /dev/sdb1

Монтирование нового диска

cd /mnt
mkdir wowclient
df -h
sudo blkid

Скопировать UUID нового раздела который выглядить как то так: (9bf6b87e-b42d-4b2a-8db7-1a470970f9a2)

Добавление нового раздела в fstab

sudo nano /etc/fstab

UUID=(UIDD-НОВОГО-РАЗДЕЛА) /mnt/wowclient ext4 defaults 0 1

sudo reboot

Копирование клиент игры в директорию

cd /mnt/wowclient
mkdir wotlk

Скопировать клиент игры в директорию /mnt/wowclient/wotlk

Предоставить группе users права на запись в деректорию

sudo chgrp users /mnt/wowclient/wotlk
sudo chmod  00770 /mnt/wowclient/wotlk

Или только основному пользователю acore

sudo chown acore:acore /mnt/wowclient/wotlk

Извлечения данных из клиента игры 👈

cd /mnt/wowclient/wotlk
map_extractor
vmap4_extractor
mkdir vmaps
vmap4_assembler Buildings vmaps
mkdir mmaps
mmaps_generator

Tip

Есть возможность воспользоваться уже сгенерированными данными из скрипта:

~/azerothcore/acore.sh client-data

но они предназначены для английской локали enGB и в целом не рекомендуются для использования в этом руководстве.

Заполнение SQL баз данных AzerothCore 👆

Хотя при первом запуске сервер сам запустит автозаполнение базы данных AzerothCore нам удобнее сделать это заранее, чтобы сразу заполнить IP адрес и стартовое приветствие сервера.

Для заполнение базы данный воспользуемся утилитой dbimport

dbimport

может понадобиться проверка dbimport.conf на настроки подключения к базе данных

cp ~/.local/etc/dbimport.conf.dist ~/.local/etc/dbimport.conf
nano ~/.local/etc/dbimport.conf

Настройка ip адреса сервера:

sudo mysql acore_auth -e "UPDATE realmlist SET name = 'Шторм клинков', address = '192.168.10.101' WHERE id = '1'";

Настройка приветсвия для сервера:

sudo mysql acore_auth -e "DELETE FROM motd WHERE realmid=1; INSERT INTO motd (realmid, text) VALUES ('1', 'Добро пожаловать на World of Warcraft сервер \"Шторм клинков\"')"

Note

Там же текста приветсвия можно изменить в консоли worldserver, но случаються проблемы с вводимыми символами

server set motd 'Добро пожаловать на World of Warcraft сервер "Шторм клинков"'
reload motd

Установка дополнений для AzerothCore 👆

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

  1. mod-eluna: Eluna Lua Engine © - это движок lua, встроенный в World of Warcraft.

    git -C $HOME/azerothcore/modules clone https://github.com/azerothcore/mod-eluna.git
    cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
    make -C $HOME/azerothcore/build/ -j $(nproc) install
  2. mod-auctionator: - Наполняет аукционный дом на малопосещаемом сервере.

    git -C $HOME/azerothcore/modules clone https://github.com/biosfree/mod-auctionator.git
    cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
    make -C $HOME/azerothcore/build/ -j $(nproc) install
  3. mod-skip-dk-starting-area: - Добовляет возможность пропустить стартовую зону Рыцарей смерти.

    git -C $HOME/azerothcore/modules clone https://github.com/biosfree/mod-skip-dk-starting-area.git
    cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
    make -C $HOME/azerothcore/build/ -j $(nproc) install
  4. mod-solo-lfg: - Позволяет игрокам использовать систему поиска подземелий в одиночку или в группах менее 5 игроков.

    git -C $HOME/azerothcore/modules clone https://github.com/azerothcore/mod-solo-lfg.git
    cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
    make -C $HOME/azerothcore/build/ -j $(nproc) install
  5. mod-solocraft: - Увеличивает статы игроков в подземелье в зависимости от количества игроков в группе

    git -C $HOME/azerothcore/modules clone https://github.com/azerothcore/mod-solocraft.git
    cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
    make -C $HOME/azerothcore/build/ -j $(nproc) install
  6. mod-reagent-bank-account: - Добавляет банкира реагентов который освобождает место в сумках игрока, храня реагенты для крафта у себя. Версия общего банка реагентов для всех персонажей на акаунте.

    git -C $HOME/azerothcore/modules clone https://github.com/biosfree/mod-reagent-bank-account.git
    cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
    make -C $HOME/azerothcore/build/ -j $(nproc) install

    Чтобы добавить reagent-bank-account NPC:

    С учетной записью GM зайдите в локацию, куда вы хотите добавить npc, и используйте эту команду:

    .npc add 290011
  7. mod-gain-honor-guard: - Дает игрокам возможность фармить стражников и/или элиту для получения чести.

    git -C $HOME/azerothcore/modules clone https://github.com/azerothcore/mod-gain-honor-guard.git
    cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
    make -C $HOME/azerothcore/build/ -j $(nproc) install
  8. mod-transmog: - Добавляет в игру возможность трансмогрификации на основе кода: Rochet2 Transmog Script

    git -C $HOME/azerothcore/modules clone https://github.com/azerothcore/mod-transmog.git
    cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
    make -C $HOME/azerothcore/build/ -j $(nproc) install

    Чтобы добавить transmog NPC:

    С учетной записью GM зайдите в локацию, куда вы хотите добавить npc, и используйте эту команду:

    .npc add 190010

Установка допольнительных модулей при помощи acore.sh 👈

Tip

Так же модули можно устанавливать используюя acore.sh c префиксом mi (module-install) и НАЗВАНИЕ МОДА Название берём из каталога AzerothCore

Например:

azerothcore/acore.sh mi mod-eluna
azerothcore/acore.sh mi mod-reagent-bank
azerothcore/acore.sh mi mod-gain-honor-guard
azerothcore/acore.sh mi mod-guildfunds
azerothcore/acore.sh mi mod-transmog
azerothcore/acore.sh compiler build

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

Внесение SQL правок в БД 👈

https://github.com/azerothcore/portals-in-all-capitals

wget -P ~/azerothcore/data/sql/custom/db_world https://raw.githubusercontent.com/azerothcore/portals-in-all-capitals/main/portals-in-all-capitals.up.sql

https://github.com/AsgavinYT/hearthstone-cooldowns

wget -O ~/azerothcore/data/sql/custom/db_world/mod-hearthstone-5min.sql https://raw.githubusercontent.com/AsgavinYT/hearthstone-cooldowns/main/Hearthstone_5_Min.sql

Чтобы востановить значение по умольчанию (30 мин.):

rm -f ~/azerothcore/data/sql/custom/db_world/mod-hearthstone-5min.sql
wget -O ~/azerothcore/data/sql/custom/db_world/mod-hearthstone-30min.sql https://raw.githubusercontent.com/AsgavinYT/hearthstone-cooldowns/main/Hearthstone_30_Min.sql

https://github.com/StraysFromPath/mod-rare-drops

wget -O ~/azerothcore/data/sql/custom/db_world/mod-rare-drops.sql https://raw.githubusercontent.com/StraysFromPath/mod-rare-drops/master/data/sql/db-world/updates/mod%20rare%20drops%20final.txt

Первый запуск сервера 👆

Создание файлов настроек для модулей

for i in $( ls ~/.local/etc/modules/*.dist ); do cp -n $i ${i%.*}; done

Настройка mod_LuaEngine

sed -i 's|^Eluna.ScriptPath = .*|Eluna.ScriptPath = "'${HOME}'/.local/bin/lua_scripts"|' ~/.local/etc/modules/mod_LuaEngine.conf

Первый запуск сервера для внисения обновлений и правок

worldserver

Tip

или используя acore.sh:

~/azerothcore/acore.sh rw

В консоле worldserver создаем нового пользователя с правами GM level 3

account create admin 'ВАШ-ДЛИННЫЙ-И-СЛОЖНЫЙ-ПАРОЛЬ'
account set gmlevel admin 3 -1

В консоле worldserver создаем нового пользователя для персонажа используемого аукционным ботом

account create ahbot 'ВАШ-ДЛИННЫЙ-И-СЛОЖНЫЙ-ПАРОЛЬ'

В консоле worldserver создаем нового пользователя для игровых персонажей

account create 'ИМЯ-АКАУНТА' 'ПАРОЛЬ'

Зауск сервера авторизации

authserver

Tip

или используя acore.sh:

~/azerothcore/acore.sh ra

Настрока запуска сервера как службы 👆

sudo nano /etc/systemd/system/auth.service
[Unit]
Description=AzerothCore Authserver
Requires=world.service
After=network.target world.service

[Service]
Type=simple
User=acore
WorkingDirectory=/home/acore/.local/bin
ExecStart=/home/acore/.local/bin/authserver
StartLimitIntervalSec=500
StartLimitBurst=5
Restart=on-failure
RestartSec=3s

[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/world.service
[Unit]
Description=AzerothCore Worldserver
After=network.target mysql.service [email protected]

[Service]
Type=simple
User=acore
StandardInput=tty
TTYPath=/dev/tty3
TTYReset=yes
TTYVHangup=yes
WorkingDirectory=/home/acore/.local/bin
ExecStart=/home/acore/.local/bin/worldserver
StartLimitIntervalSec=500
StartLimitBurst=5
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable auth world
sudo systemctl start world auth

Поддержка сервера в актуальном состояние 👆

Проверка обновлений ядра AzerothCore:

git -C $HOME/azerothcore pull origin master

Установка обновлений ядра AzerothCore:

cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
make -C $HOME/azerothcore/build/ -j $(nproc) install

Проверка обновлений модулей AzerothCore:

cd ~ && find ./azerothcore/modules -mindepth 1 -maxdepth 1 -type d -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \;

Установка обновлений модулей AzerothCore:

cmake -B $HOME/azerothcore/build/ -S $HOME/azerothcore/
make -C $HOME/azerothcore/build/ -j $(nproc) install

About

Инструкция по установке World of Warcraft: Wrath of the Lich King сервера на ядре AzerothCore в Debian 12

Resources

License

Stars

Watchers

Forks