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:

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:

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:


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-devThen 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