Azerothcore 2024 Перейдите на сайт официального репозитория MySQL: MySQL APT Repository.
Проверти текущий номер версии mysql-apt-config_x.x.xx-x_all.deb.
Запишите его в переменную, действующую в текущем сеансе пользователя.
mysql_apt_config_ver="0.8.33-1"
[!IMPORTANT]
Далее в инструкции будут команды, которые смогут использовать эту переменную пока будет активен текущей сеанс пользователя.
Установите последнюю версию mysql-server-lts (На данный момент v8.4) без вывода каких-либо пользовательских запросов:
Загрузите последний mysql-apt-config_*_all.deb c официального репозитория в /tmp
wget --show-progress -qO "/tmp/mysql-apt-config_all.deb" "https://repo.mysql.com/mysql-apt-config_${mysql_apt_config_ver}_all.deb"
или c сохранением в имени версии
wget --show-progress -qNt5 -P /tmp "https://dev.mysql.com/get/mysql-apt-config_${mysql_apt_config_ver}_all.deb"
Установите конфигуратор репозитория MySQL APT
sudo DEBIAN_FRONTEND="noninteractive" apt install -yqq "/tmp/mysql-apt-config_all.deb"
Или через
dpkg -iсогласно инструкции MySQL:sudo apt-get install gnupg -yqq sudo DEBIAN_FRONTEND=noninteractive dpkg -i "/tmp/mysql-apt-config_all.deb"
Если передумали использовать настройки установку по-умолчанию то на этом моменте их можно поменять.
Например для установки mysql-server-innovation (v9.2) или установки своего пароля для root пользователя MySQL:
sudo dpkg-reconfigure mysql-apt-config
Установите непосредственно Сервер MySQL и библиотеки:
sudo apt update -qq
sudo DEBIAN_FRONTEND="noninteractive" apt install -yqq mysql-server libmysqlclient-dev
[!TIP] Или воспользуйтесь интерактивным вариантом установки. Например для установки
mysql-server-innovation(v9.2) или установки своего пароля дляroot.sudo apt install /tmp/mysql-apt-config_all.deb sudo apt update sudo apt install mysql-server libmysqlclient-dev
[!NOTE] При установке MySQL, новая учетная запись
rootбудет защищена аутентификацией черезauth_socket, поэтому вы можете спокойно оставлять поле с паролем для root пустым!
[!TIP] Чтобы изменит у пользователя
rootметод аутентификации с auth_socket напароль:sudo mysql -Bse "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY RANDOM PASSWORD;"Чтобы изменит у пользователя
rootметод аутентификации с пароля наauth_socket:sudo mysql -p -Bse "ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;"
Обратите внимание что может быть два запроса пароля, первый от команды sudo (пароль текущего пользователя), второй пароль пользователя root MySQL
[!NOTE] Убедитесь что после установки служба MySQL успешно запущена
systemctl status mysql
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
Загрузите исходники c официального репозитория
git -C ~ clone https://github.com/azerothcore/azerothcore-wotlk.git azerothcore --depth 1
Создание 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
sudo mysql
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 mysqlREVOKE 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
Первая компиляция немодифицированного сервера:
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.confnano ~/.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
Или только основному пользователю
acoresudo 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и в целом не рекомендуются для использования в этом руководстве.
Хотя при первом запуске сервер сам запустит автозаполнение базы данных 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
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
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
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
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
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
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
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
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.shc префиксом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
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.sqlhttps://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 getty@tty3.service
[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