Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Cách thiết lập máy chủ World of Warcraft bằng AzerothCore

Để thiết lập máy chủ World of Warcraft, bạn cần cài đặt phần mềm giả lập máy chủ, cấu hình cơ sở dữ liệu, chuẩn bị dữ liệu trò chơi và kết nối các thành phần máy chủ. Một trong những dự án mã nguồn mở nổi tiếng nhất để tìm hiểu quy trình này là AzerothCore, phần mềm giả lập môi trường máy chủ World of Warcraft: Wrath of the Lich King 3.3.5a.

AzerothCore có thể chạy trên Linux, Windows và macOS. Trong hướng dẫn này, chúng ta sẽ tập trung cài đặt AzerothCore trên Ubuntu 26.04 LTS theo quy trình cài đặt từ mã nguồn hiện tại của dự án.

Hướng dẫn sẽ trình bày các lệnh thiết yếu, cách cấu hình cơ sở dữ liệu và mạng, cùng những vấn đề cài đặt thường gặp.

Quan trọng: AzerothCore là một dự án mã nguồn mở độc lập, không phải máy chủ chính thức của Blizzard. Điều khoản cấp phép của Blizzard hạn chế việc giả lập máy chủ và kết nối khi chưa được phép. Hướng dẫn này dành cho mục đích giáo dục kỹ thuật và những môi trường mà bạn có đầy đủ quyền và sự cho phép cần thiết. Hướng dẫn không cung cấp ứng dụng khách trò chơi, tài sản độc quyền hay quyền vận hành dịch vụ khi chưa được phép.

AzerothCore là gì?

AzerothCore là phần mềm giả lập máy chủ MMORPG mã nguồn mở dựa trên môi trường Wrath of the Lich King 3.3.5a.

Phần mềm tái tạo các hệ thống phía máy chủ như quản lý nhân vật, xác thực, nhiệm vụ, sinh vật và tương tác trong thế giới trò chơi.

Phần mềm sử dụng ba thành phần chính:

  • Authserver: Xử lý xác thực đăng nhập và lựa chọn máy chủ thế giới.
  • Worldserver: Quản lý các hoạt động trong thế giới trò chơi, nhân vật và hệ thống lối chơi.
  • Cơ sở dữ liệu MySQL: Lưu trữ thông tin xác thực, nhân vật và thông tin thế giới.

Cả hai ứng dụng máy chủ đều giao tiếp với MySQL và có thể chạy trên cùng một máy.

AzerothCore cung cấp phần mềm máy chủ nhưng không cung cấp ứng dụng khách World of Warcraft có bản quyền hoặc quyền phân phối lại tài sản của Blizzard.

AzerothCore là gì

Yêu cầu đối với máy chủ World of Warcraft

Yêu cầu của AzerothCore phụ thuộc vào phương pháp cài đặt và khối lượng công việc. Biên dịch phần mềm thường cần nhiều tài nguyên hơn so với vận hành một môi trường thử nghiệm nhỏ.

Đối với môi trường phát triển hoặc thử nghiệm trên Linux, bạn có thể bắt đầu với cấu hình sau:

Tài nguyênCấu hình đề xuất
CPU4 vCPU trở lên
RAM8 GB trở lên để biên dịch
Dung lượng lưu trữSSD hoặc NVMe 60–100 GB
Hệ điều hànhUbuntu 26.04 LTS
Cơ sở dữ liệuMySQL 8.4 LTS
Trình biên dịchGCC 15+ hoặc Clang 18+

Các thông số phần cứng này là ước tính thực tế để bắt đầu, không phải yêu cầu tối thiểu chính thức hay mức dung lượng người chơi được bảo đảm.

Trong hướng dẫn này, chúng ta sẽ sử dụng Ubuntu 26.04 LTS, phiên bản cung cấp các gói MySQL 8.4 được hỗ trợ thông qua kho phần mềm.

Quá trình cài đặt cũng đòi hỏi quyền quản trị và kiến thức cơ bản về các lệnh Linux.

Bước 1: Chuẩn bị máy chủ Linux

Kết nối với môi trường Linux qua SSH:

ssh admin@YOUR_SERVER_IP

Thay admin bằng tên người dùng của bạn và YOUR_SERVER_IP bằng địa chỉ thực của máy chủ.

Cập nhật hệ thống:

sudo apt update
sudo apt upgrade

Tiếp theo, cài đặt các thành phần phụ thuộc được tài liệu hướng dẫn liệt kê cho Ubuntu 26.04:

sudo apt install git cmake make gcc g++ clang \
libstdc++-16-dev default-libmysqlclient-dev \
libssl-dev libbz2-dev libreadline-dev \
libncurses-dev mysql-server libboost-all-dev tmux

Kiểm tra xem MySQL có đang chạy không:

sudo systemctl status mysql

Bạn cũng có thể kiểm tra phiên bản trình biên dịch và cơ sở dữ liệu:

clang --version
mysql --version

Hãy bảo đảm chúng đáp ứng các yêu cầu hiện tại của AzerothCore trước khi tiếp tục.

Hãy dùng tài khoản Linux thông thường để biên dịch và chạy AzerothCore thay vì chạy ứng dụng bằng tài khoản root.

Bước 2: Tải xuống và biên dịch AzerothCore

Tải mã nguồn chính thức từ GitHub:

git clone https://github.com/azerothcore/azerothcore-wotlk.git \
--branch master --single-branch ~/azerothcore

Vào thư mục dự án và tạo một thư mục biên dịch riêng:

cd ~/azerothcore
mkdir build
cd build

Cấu hình quá trình biên dịch bằng CMake:

cmake .. \
-DCMAKE_INSTALL_PREFIX="$HOME/azerothcore/env/dist/" \
-DCMAKE_C_COMPILER=/usr/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
-DTOOLS_BUILD=all \
-DSCRIPTS=static \
-DMODULES=static

Nếu cấu hình thành công, hãy biên dịch AzerothCore:

make -j2

Tùy chọn -j2 giới hạn quá trình biên dịch ở hai tác vụ song song, giúp giảm áp lực lên bộ nhớ so với việc sử dụng tất cả luồng CPU hiện có.

Nếu máy chủ có RAM hạn chế và quá trình biên dịch thất bại do hết bộ nhớ, hãy thử make -j1.

Sau khi biên dịch xong, hãy cài đặt các tệp nhị phân:

make install

Các tệp đã cài đặt sẽ nằm tại:

~/azerothcore/env/dist/

Thư mục bin chứa các ứng dụng máy chủ và công cụ đã biên dịch.

Bước 3: Cấu hình cơ sở dữ liệu MySQL

AzerothCore sử dụng ba cơ sở dữ liệu:

  • acore_auth — thông tin xác thực và tài khoản.
  • acore_characters — dữ liệu nhân vật và người chơi.
  • acore_world — thông tin thế giới trò chơi.

Đối với bản cài đặt mới, AzerothCore cung cấp một tập lệnh SQL để tạo các cơ sở dữ liệu và người dùng cơ sở dữ liệu.

Chạy:

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

Chỉ sử dụng tập lệnh khởi tạo này cho bản cài đặt mới. Tập lệnh cũng tạo lại người dùng cơ sở dữ liệu mặc định, có thể làm gián đoạn các cấu hình hiện có.

Tập lệnh tạo tài khoản acore với mật khẩu mặc định. Hãy đổi mật khẩu đó trước khi sử dụng bản cài đặt.

Mở MySQL:

sudo mysql

Đổi mật khẩu tài khoản:

ALTER USER 'acore'@'localhost'
IDENTIFIED BY 'YOUR_STRONG_PASSWORD';

Thay giá trị giữ chỗ bằng một mật khẩu mạnh, duy nhất. Giữ bí mật mật khẩu và cập nhật thông tin đăng nhập cơ sở dữ liệu tương ứng trong các tệp cấu hình.

Thoát MySQL:

EXIT;

AzerothCore có công cụ tự động cập nhật cơ sở dữ liệu, giúp khởi tạo và cập nhật các bảng cần thiết khi các tiến trình máy chủ tương ứng khởi động.

Bạn không cần nhập thủ công từng tệp cập nhật cơ sở dữ liệu.

Bước 4: Chuẩn bị dữ liệu trò chơi cần thiết

AzerothCore yêu cầu dữ liệu thế giới trò chơi tương thích với môi trường 3.3.5a.

Dữ liệu này tách biệt với mã máy chủ nguồn mở và cần đặc biệt lưu ý đến tài sản độc quyền cũng như vấn đề cấp phép.

Các thư mục dữ liệu chính gồm:

Thư mụcMục đích
dbcCấu hình trò chơi và dữ liệu tham chiếu
mapsThông tin địa hình và bản đồ
vmapsDữ liệu va chạm và tầm nhìn
mmapsDữ liệu điều hướng và di chuyển

AzerothCore cung cấp các công cụ trích xuất để chuẩn bị dữ liệu này từ một bản cài đặt ứng dụng khách tương thích mà bạn có quyền sử dụng.

Quy trình trích xuất sử dụng các công cụ như map_extractor, vmap4_extractor, vmap4_assembler và mmaps_generator. Hãy làm theo hướng dẫn chính thức về thiết lập máy chủ Linux để thực hiện quy trình trích xuất phù hợp với môi trường của bạn.

Sau khi trích xuất xong, hãy đặt các thư mục cần thiết vào vị trí dữ liệu đã cấu hình.

Theo thiết lập mặc định, các thư mục này thường cần nằm cùng vị trí với tệp nhị phân worldserver đã cài đặt, tại:

~/azerothcore/env/dist/bin/

Xác nhận các thư mục cần thiết đã tồn tại trước khi khởi động máy chủ thế giới.

Lưu ý: Giấy phép của phần mềm giả lập mã nguồn mở không cho phép tải xuống, chia sẻ hoặc phân phối lại các tệp ứng dụng khách World of Warcraft độc quyền.

Bước 5: Cấu hình Authserver và Worldserver

AzerothCore cung cấp các tệp cấu hình mẫu cho cả hai dịch vụ.

Chuyển đến thư mục cấu hình:

cd ~/azerothcore/env/dist/etc/

Tạo các bản sao để sử dụng:

cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf

Mở các tệp cấu hình bằng trình soạn thảo văn bản bạn muốn.

Ví dụ:

nano worldserver.conf

Tìm các thiết lập kết nối cơ sở dữ liệu.

Các thiết lập này có định dạng:

LoginDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_auth"
WorldDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_world"
CharacterDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_characters"

Thay YOUR_PASSWORD bằng mật khẩu cơ sở dữ liệu đã tạo trước đó.

Đồng thời cấu hình LoginDatabaseInfo trong authserver.conf.

Mỗi mục xác định máy chủ MySQL, cổng, tên người dùng, mật khẩu và tên cơ sở dữ liệu.

Tiếp theo, kiểm tra tùy chọn DataDir trong worldserver.conf.

Nếu các thư mục dữ liệu trò chơi cần thiết nằm cùng vị trí với tệp nhị phân máy chủ thế giới đã cài đặt, đường dẫn tương đối mặc định có thể đã phù hợp. Nếu không, hãy đặt DataDir thành thư mục chính xác.

Lưu các tệp cấu hình trước khi tiếp tục.

Bước 6: Khởi động máy chủ thế giới và máy chủ xác thực

AzerothCore có các tập lệnh khởi động để quản lý tiến trình máy chủ.

Để thử nghiệm tương tác, bạn có thể dùng tmux để duy trì mỗi tiến trình trong một phiên terminal riêng.

Trước tiên, tạo một phiên cho máy chủ thế giới:

tmux new -s wow-world

Trong phiên đó, chạy:

cd ~/azerothcore
./acore.sh run-worldserver

Trong lần khởi động đầu tiên, AzerothCore có thể yêu cầu bạn tạo hoặc điền dữ liệu vào các bảng cơ sở dữ liệu. Hãy làm theo lời nhắc và đợi quá trình khởi tạo hoàn tất.

Kiểm tra đầu ra để phát hiện sự cố kết nối cơ sở dữ liệu hoặc tệp dữ liệu trò chơi bị thiếu.

Để tách khỏi phiên tmux mà không đóng tiến trình, nhấn Ctrl+B, sau đó nhấn D.

Bắt đầu phiên thứ hai:

tmux new -s wow-auth

Sau đó chạy:

cd ~/azerothcore
./acore.sh run-authserver

Lúc này, cả hai tiến trình máy chủ sẽ chạy trong các phiên riêng.

Bạn có thể liệt kê các phiên bằng:

tmux ls

Đối với các hệ thống cần vận hành lâu dài, hãy sử dụng các phương án quản lý dịch vụ được ghi trong tài liệu AzerothCore thay vì chỉ dựa vào các phiên terminal tương tác.

Bước 7: Tạo tài khoản thử nghiệm

Sau khi máy chủ thế giới khởi động thành công, bạn có thể tạo tài khoản qua bảng điều khiển của máy chủ.

Kết nối lại với phiên máy chủ thế giới:

tmux attach -t wow-world

Tại bảng điều khiển máy chủ thế giới, nhập:

account create testuser YOUR_STRONG_PASSWORD

Thay tên người dùng và mật khẩu ví dụ bằng thông tin đăng nhập bạn chọn.

AzerothCore cũng hỗ trợ nhiều cấp quyền khác nhau cho tài khoản.

Ví dụ, các lệnh quản lý tài khoản có thể cấp quyền quản trị viên:

account set gmlevel testuser 3 -1

Cấp 3 trao quyền quản trị viên, còn -1 áp dụng thiết lập cho tất cả máy chủ thế giới.

Chỉ cấp quyền cao cho những tài khoản thực sự cần.

Đây là các lệnh trong bảng điều khiển AzerothCore, không phải lệnh shell Linux thông thường.

Bước 8: Tìm hiểu cấu hình mạng cho máy chủ thế giới

AzerothCore sử dụng hai cổng TCP mặc định:

CổngDịch vụ
3724Máy chủ xác thực
8085Máy chủ thế giới

Phần mềm cũng lưu thông tin kết nối máy chủ thế giới trong bảng realmlist thuộc acore_auth.

Để thử nghiệm cục bộ, địa chỉ có thể giữ nguyên là 127.0.0.1. Đối với môi trường thử nghiệm từ xa được cho phép, địa chỉ máy chủ thế giới phải là địa chỉ mà ứng dụng khách được phép có thể truy cập, đồng thời quyền truy cập mạng phải được cấu hình phù hợp.

Bạn có thể kiểm tra cấu hình máy chủ thế giới hiện tại qua MySQL:

sudo mysql

Sau đó:

USE acore_auth;
SELECT id, name, address FROM realmlist;

Tài liệu về mạng của AzerothCore giải thích cách hoạt động của địa chỉ máy chủ thế giới và các thiết lập mạng.

Tránh để cổng cơ sở dữ liệu có thể truy cập từ internet công cộng. Nếu môi trường được cho phép cần truy cập từ xa, hãy giới hạn quyền truy cập bằng quy tắc tường lửa hoặc mạng riêng phù hợp.

AzerothCore nhắm đến giao thức ứng dụng khách WoW 3.3.5a trước đây. Các ứng dụng khách World of Warcraft hiện đại không thể dùng thay thế cho phiên bản đó. Chỉ riêng việc ứng dụng khách tương thích không đồng nghĩa với việc bạn được phép kết nối với máy chủ không chính thức.

Các vấn đề thường gặp khi thiết lập máy chủ World of Warcraft

Ngay cả khi phần mềm biên dịch thành công, sự cố cấu hình vẫn có thể khiến các dịch vụ không khởi động được.

Vấn đềNhững gì cần kiểm tra
Không thể kết nối cơ sở dữ liệuTrạng thái MySQL, thông tin đăng nhập cơ sở dữ liệu, quyền của người dùng
Worldserver không thể tải bản đồCác tệp dbc, maps hoặc vmaps bị thiếu hoặc nằm sai vị trí
Không thể truy cập máy chủ thế giớiTrạng thái Authserver và cấu hình realmlist
Kết nối bị từ chốiTiến trình máy chủ, cổng lắng nghe, tường lửa
Biên dịch thất bạiPhiên bản trình biên dịch, các thành phần phụ thuộc, dung lượng RAM khả dụng
Sự cố dừng đột ngộtNhật ký khởi động, tính tương thích giữa các phiên bản phần mềm, giới hạn tài nguyên

Ví dụ, kiểm tra bộ nhớ và dung lượng lưu trữ còn trống bằng:

free -h
df -h

Nếu đang khắc phục lỗi biên dịch, hãy chạy lại lệnh liên quan và đọc lỗi có ý nghĩa đầu tiên thay vì chỉ tập trung vào thông báo lỗi cuối cùng.

Đối với các vấn đề kéo dài, hãy tham khảo tài liệu về các lỗi thường gặp của AzerothCore.

Cập nhật và bảo mật AzerothCore

AzerothCore liên tục nhận được các bản cập nhật phát triển, vì vậy yêu cầu cài đặt và tùy chọn cấu hình có thể thay đổi.

Trước khi cập nhật một môi trường hiện có:

  1. Sao lưu các cơ sở dữ liệu MySQL và cấu hình tùy chỉnh.
  2. Xem lại hướng dẫn cài đặt và ghi chú cập nhật mới nhất của dự án.
  3. Dừng các dịch vụ liên quan một cách an toàn.
  4. Cập nhật mã nguồn và biên dịch lại khi cần.
  5. Đợi các bản cập nhật cơ sở dữ liệu theo tài liệu hướng dẫn hoàn tất.
  6. Kiểm tra các tiến trình máy chủ và xem lại nhật ký của chúng.

Bạn cũng nên duy trì các bản cập nhật bảo mật cho hệ điều hành, bảo vệ thông tin đăng nhập quản trị viên, hạn chế truy cập mạng không cần thiết và thử nghiệm quy trình khôi phục.

Tránh tắt hoàn toàn các bản cập nhật bảo mật tự động. Thay vào đó, hãy lên lịch bảo trì và phối hợp thực hiện các bản cập nhật có thể khởi động lại MySQL hoặc các dịch vụ khác.

Câu hỏi thường gặp

Tôi có thể thiết lập máy chủ WoW trên Linux không?

Có. AzerothCore hỗ trợ Linux và cung cấp tài liệu hướng dẫn biên dịch, cấu hình phần mềm máy chủ mã nguồn mở. Việc sử dụng tài sản trò chơi độc quyền hoặc kết nối ứng dụng khách WoW còn liên quan đến các quyền và điều kiện cấp phép bổ sung.

AzerothCore có hỗ trợ World of Warcraft hiện đại không?

Không. Dự án AzerothCore WotLK nhắm đến môi trường World of Warcraft 3.3.5a trước đây. Các ứng dụng khách của phiên bản thương mại hiện đại không tương thích trực tiếp.

AzerothCore có hỗ trợ MariaDB không?

Không. AzerothCore đã ngừng hỗ trợ MariaDB vào tháng 9 năm 2024. Tài liệu hiện tại của dự án khuyến nghị MySQL 8.4 LTS.

Tôi có cần máy chủ chuyên dụng không?

Không nhất thiết. Môi trường phát triển hoặc thử nghiệm có thể chạy trên một máy ảo đủ mạnh. Nhu cầu tài nguyên phụ thuộc vào quá trình biên dịch, các mô-đun đã cài đặt, dịch vụ đang hoạt động và khối lượng công việc.

Vận hành máy chủ World of Warcraft riêng có hợp pháp không?

Thỏa thuận cấp phép người dùng cuối của Blizzard hạn chế việc giả lập máy chủ và kết nối khi chưa được phép. Phần mềm máy chủ mã nguồn mở không trao quyền sử dụng ứng dụng khách trò chơi, hình ảnh hay nội dung độc quyền khác của Blizzard. Bất kỳ ai dự định sử dụng môi trường giả lập đều nên xem xét các giấy phép liên quan và xin mọi sự cho phép cần thiết.

Kết luận

Thiết lập máy chủ World of Warcraft bằng AzerothCore đòi hỏi nhiều bước hơn việc chỉ tải phần mềm giả lập và chạy hai lệnh.

Một môi trường kỹ thuật hoạt động được cần có phần mềm tương thích, cơ sở dữ liệu MySQL được cấu hình, dữ liệu trò chơi phù hợp, dịch vụ xác thực và thế giới được cấu hình chính xác, cùng thiết lập mạng thích hợp.

Bằng cách làm theo tài liệu hiện tại của dự án và kiểm tra từng giai đoạn trước khi tiếp tục, bạn có thể hiểu rõ hơn cách hoạt động của hạ tầng máy chủ MMORPG, đồng thời tránh nhiều lỗi cài đặt thường gặp.

Luôn phân biệt công nghệ máy chủ mã nguồn mở với nội dung độc quyền và những quyền cần có để sử dụng nội dung đó.

Table of Content

Hosting that grows with you

Give your next website or application the resources and control it needs.

Explore VPS hosting →

Việc chọn dịch vụ lưu trữ WordPress tốt nhất có thể khiến bạn bối rối

Bạn có thể thành lập công ty cung cấp dịch vụ lưu trữ web mà

Dịch vụ đại lý lưu trữ VPS cho phép các công ty dịch vụ lưu

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Lên đầu trang