TrinityCore Series: Deploying World of Warcraft TrinityCore 3.3.5 Registration Website
本文最后更新于 171 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。
Article Abstract
To address the account creation efficiency issue of the Trinitycore 3.3.5 World of Warcraft server deployed on the public network, the WoWSimpleRegistration solution is adopted to achieve automated registration. This tool is compatible with multiple core versions. By deploying a PHP 7.4 environment, configuring database connections, and setting up Nginx sites, a registration page can be quickly built. Practice shows that through BT Panel or Docker deployment methods, combined with gmp extension installation and configuration file adjustments, the user self-service registration process is ultimately realized, effectively improving the efficiency of multi-player server account management. As an extension of the series of deployment tutorials, this solution provides convenient registration module support for building massively multiplayer online game servers.
Qwen3-14B · 2026-06-18

In the previous article (see:World of Warcraft Trinitycore 3.3.5 Version Setup Dummy Guide), we built our own WLK World of Warcraft server based on Trinitycore version 3.3.5. After the worldserver program successfully ran, we ran theaccount createcommand to create a game account. If you are just playing by yourself, it doesn't matter, as you only need to create it once. However, if this server is intended to be placed on the public network for many people to play together, are you going to manually create an account for every single person who joins? This is truly exhausting and lacks style.

Fortunately, there is a high-end solution, WoWSimpleRegistration:

image.png

The project address is as follows:
https://github.com/TrinityCore/WoWSimpleRegistration
Crucially, it can simultaneously support:AzerothCore, TrinityCore, AshamaneCore, CMangos.

No need to go into too much detail. Generally speaking, just download the zip package or git clone the entire directory, and then drop it into the corresponding directory of your web server.

Zip package download address:
https://github.com/TrinityCore/WoWSimpleRegistration/archive/refs/heads/master.zip

If GitHub is inaccessible, you can also download it from the following link:Invincible File Sharing, with the access password: ”blog.tangwudi.com”. Just download the ”WoWSimpleRegistration-master.zip” file from there.

Of course, that's just generally speaking. In practice, some setup is still required: one is PHP, one is the configuration file, and finally Nginx.

For PHP, the official requirements are clear:

image.png

I am using 7.4.

Next, it depends on which deployment method you use for PHP:
Source code deployment
If it is source code deployment, various control panels are recommended for beginners. I am used to the BT Linux Panel. In the App Store of the BT Panel, find the installed PHP version, and then click Settings:

image.png

image.png

In the "Install Extensions" section, install the extensions according to the official requirements:
Friendly tip: the gmp extension cannot be installed by default. At this point, you need to run the following command in the terminal:
apt install libgmp-dev
Then gmp can be installed normally.

Docker php7.4-fpm deployment
This is the single PHP container method I mentioned in another article. If you want to install extensions this way, refer to the following (needs to be run inside the PHP container):

apt update
apt-get install -y \
      libfreetype6-dev \
      libjpeg62-turbo-dev \
      libpng-dev \
      libwebp-dev \
      zlib1g-dev
添加gd库编译选项:
docker-php-ext-configure gd \
     --enable-gd \
     --with-freetype \
     --with-jpeg \
     --with-webp
再安装gd扩展模块:
docker-php-ext-install -j$(nproc) gd

apt-get install -y libgmp-dev
安装gmp扩展
docker-php-ext-install gmp
安装mysql客户端
docker-php-ext-install pdo_mysql

Next is the configuration file. After extracting the downloaded zip file, you will get the WoWSimpleRegistration-master folder. The configuration file is WoWSimpleRegistration-master/application/config/config.php.sample. Make a copy of it, rename it to config.php, and then open it with a text editor. The key configurations are as follows:

$config['baseurl'] = "https://你的域名"; // 你服务器对应的IP或域名(必须和mariaDB中的auth库中的realmlist表中address项对应的内容一样),如果不是标准443端口,你的域名后要加:端口,例如https://abc.com:12345
config['page_title'] = "Invincible Azeroth"; // The description on the tab when accessing the website in a browserconfig['language'] = "chinese-simplified"; // Default language of the website, defaults to English if not specified
config['expansion'] = '2'; // Website style, can be of various versions. Since we are using WLK here, we choose 2config['server_core'] = 0; // Which core the game uses. Since I deployed the TC version, I choose 0
config['smtp_host'] = 'smtp.163.com'; // Administrator's SMTP email address. If you want users to be able to send emails to reset their passwords, this information must be filled in. I use 163 mail, so I will use 163 mail as an example.config['smtp_port'] = 587;
config['smtp_auth'] = true;config['smtp_user'] = '[email protected]';  \\ Administrator's sender email
config['smtp_pass'] = 'xxx'; \\ Administrator 163 email authorization codeconfig['smtp_secure'] = 'ssl';
config['smtp_mail'] = '[email protected]';  \\ Administrator receiving email, generally the same as the sending email is fineconfig['db_auth_host'] = 'x.x.x.x'; \\ IP address of the database server where auth is located. In our previous article, we mentioned 3 databases: auth is responsible for game login account data, similar to Battle.net; Characters is the character database, where all characters created by accounts are stored; world is for NPCs, bosses, instances, world items, etc. These databases can be stored separately on different database servers.
config['db_auth_port'] = '3306'; \\ Port of the database server where auth is locatedconfig['db_auth_user'] = 'root';  \\ Database administrator where auth is located. You can also use trinity
config['db_auth_pass'] = 'xxx';   \\ Database administrator password where auth is locatedconfig['db_auth_dbname'] = 'auth';  \\ In TC, this database is called auth;

The database part depends on the relationship between your database server and the server hosting the registration website. If they are on the same cloud host, the IP address is 127.0.0.1. If they are not on the same host, it is the IP address of the database server, and you need to set up remote access permissions for the root user (or trinity user) on the database in advance.

After the above steps, PHP and the configuration files are all set up. The rest is to set up the website. Here, using the panel source code method is different from the docker method. I won't go into the panel source code method, as there are many tutorials online—just search for "Baota Linux panel website setup" and they are all over the web. Here, I will mention the docker method. Please refer to my other article:docker series: multi-site deployment with single-container nginx and single-container php (one version), if it is built according to my method, you only need to put the unzipped folder WoWSimpleRegistration-master (the name is too long, it is recommended to shorten it, I changed it to wow) under the /docker/nginx/html folder, and then create a new wow.conf configuration file in the /docker/nginx/conf/conf.d folder and you're done (the content is the same as in the article mentioned above). Isn't it very simple? That's why I wrote a separate article first, just to make things easier here.

Once the above steps are completed, the website is already set up. The remaining technical tips, such as how to modify the corresponding pages and how to add an ICP filing number to the website, are actually very simple. I will write a dedicated article about them when I have the chance in the future.

Take a look at my results:
Invincible Azeroth

View Related Categories · 3 Matches
📌 Content Structure Prompt:
This content is part of the following knowledge map, where you can view the complete content path: Blog Knowledge Map。
📎 Related Articles
Share this article
The blog content is original, please indicate the source when reposting! The RSS address of the blog is:https://blog.tangwudi.com/feed, welcome to subscribe; if needed, you can join theTelegram Groupto discuss questions together.
No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗ
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Kaomoji
Emoji
Little Dinosaur
Flower!
Previous
Next
       

👋 Welcome to “Wudi's Personal Blog”

Here, long-term exploration is mainly carried out around the following directions:

🧱 Personal Digital Infrastructure and Blog System Construction
☁️ Cloudflare and Network Architecture Practice
🧠 AI and Knowledge System Exploration
🛡️ Network Security and Access Optimization
🎵 Music and Sound Cognition
👁️ Cognitive Perspectives and Worldviews