Hello World

吞风吻雨葬落日 欺山赶海踏雪径

0%

debian11编译安装azerothcore

debian11编译安装azerothcore, 记录步骤如下。

安装依赖

1
sudo apt-get update && sudo apt-get install git cmake make gcc g++ clang default-libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev mariadb-server libboost-all-dev

检查一下编译相关的版本

1
2
3
4
# clang版本需要大于 10
clang --version
# cmake版本需要大于 11
cmake --version

Linux依赖具体参见: https://www.azerothcore.org/wiki/linux-requirements

编译源码

下载源码

1
git clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch azerothcore --depth 1
1
2
3
cd azerothcore
mkdir build
cd build

编译源码

1
2
3
4
5
6
cmake ../ -DCMAKE_INSTALL_PREFIX=/opt/azeroth-server/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static

# 查看CPU核数
nproc --all
make -j 2
make install

初始化数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看数据库状态
> sudo systemctl status mariadb
● mariadb.service - MariaDB 10.11.6 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
Active: active (running) since Fri 2024-03-01 13:39:41 CST; 7h ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 39845 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 8 (limit: 2153)
Memory: 212.8M
CPU: 2.940s
CGroup: /system.slice/mariadb.service
└─39845 /usr/sbin/mariadbd

设置数据库开机启动

1
sudo systemctl enable mariadb

初始化数据库

1
sudo mysql_secure_installation

注意这里root不需要远程登录权限, 远程登录的管理用户单独创建。

修改数据库配置允许远程连接以及端口号

1
2
3
4
5
6
vim /etc/mysql/mariadb.conf.d/50-server.cnf
修改 bind-address = 0.0.0.0

[mysqld]
port = 3336
sudo systemctl restart mariadb

创建对应的帐号

1
2
3
4
5
6
7
8
9
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;
GRANT ALL PRIVILEGES ON * . * TO 'acore'@'localhost' WITH GRANT OPTION;
CREATE DATABASE `acore_world` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;
CREATE DATABASE `acore_characters` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;
CREATE DATABASE `acore_auth` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_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;

创建一个远程连接的帐号用于管理

1
2
3
4
CREATE USER 'gm'@'%' IDENTIFIED BY 'mima' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT ALL PRIVILEGES ON `acore_world`. * TO 'gm'@'%' ;
GRANT ALL PRIVILEGES ON `acore_characters`. * TO 'gm'@'%' ;
GRANT ALL PRIVILEGES ON `acore_auth`. * TO 'gm'@'%' ;

Linux中的数据库初始化需要执行azeroth-server/bin/dbimport单独初始化,初始化好之后别忘了修改数据中的服务器地址:

1
UPDATE realmlist SET address = '服务器IP地址' WHERE id = 1;

数据库维护参考:https://blog.csdn.net/github_35588003/article/details/105930371

配置服务端

首先下载DATA文件,下载地址: https://github.com/wowgaming/client-data/releases/

设置

设置服务(可选)

authserver.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=AzerothCore Authserver
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=执行的用户
WorkingDirectory=/opt/azeroth-server/bin
ExecStart=/opt/azeroth-server/bin/authserver

[Install]
WantedBy=multi-user.target

worldserver.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=AzerothCore Worldserver
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=执行的用户
WorkingDirectory=/opt/azeroth-server/bin
ExecStart=/bin/screen -S worldserver -D -m /opt/azeroth-server/bin/worldserver

[Install]

安装插件

安装 mod-eluna

1
git clone https://github.com/azerothcore/mod-eluna --branch master --single-branch mod-eluna --depth 1