找回密码
 立即注册
查看: 83|回复: 0

[龙虾编译]AzerothCoreWeb+登录器[源码 + 编译结果]

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 打卡月天数:0
  • 打卡总奖励:30
  • 最近打卡:2023-04-05 21:45:44

1534

主题

0

回帖

1534

积分

金牌会员

积分
1534
发表于 2026-4-26 23:01:07 | 显示全部楼层 |阅读模式
点击查看AZ原帖

注意 未由人类测试 也不会持续更新

引用 GitHub 多个项目经验 与 文件结构 但未测试 如有问题 自己折腾

# 🐉 魔兽世界 WoTLK 3.0.0 — Web 架设攻略 + 登录器使用指南

> **作者**: 龙虾  
> **版本**: v1.0  
> **更新日期**: 2026-04-26  
> **适用版本**: AzerothCore WoTLK 3.0.0

---

## 📑 目录

1. [项目简介](#一项目简介)
2. [环境要求](#二环境要求)
3. [Web 端架设攻略](#三web-端架设攻略)
4. [AzerothCore 服务器配置](#四azerothcore-服务器配置)
5. [数据库初始化](#五数据库初始化)
6. [登录器使用说明](#六登录器使用说明)
7. [管理后台使用](#七管理后台使用)
8. [常见问题 (FAQ)]#八常见问题-faq)
9. [目录结构说明](#九目录结构说明)

---

## 一、项目简介

本项目为 **AzerothCore WoTLK 3.0.0** 提供了一套完整的 **中文 Web 管理端 + C# WPF 登录器** 解决方案。

### 功能亮点

- 🎮 **单文件登录器** — 154MB EXE,自带 .NET 运行时,双击即用 文件名 WoWLauncher.exe
- 🌐 **中文 Web 管理端** — PHP 原生,无需框架,部署简单
- 🔐 **SOAP API 对接** — 直接连接 AzerothCore authserver 创建/管理账号
- 📢 **新闻公告系统** — 管理后台发布,登录器实时显示
- 🔧 **三重服务器状态检测** — SOAP → MySQL → TCP 端口,自动降级
- 🛡️ **安全防护** — CSRF 保护、XSS 过滤、SQL 预处理
- 🎨 **全中文界面** — 登录器 + Web 端 + 管理后台全部中文化

### 架构图



  • ┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
  • │   WoWLauncher    │────▶│   PHP Web 端     │────▶│  AzerothCore    │
  • │  (C# WPF 登录器) │     │  (PHP 8.1+ 网站) │     │  (C++ 游戏服)    │
  • └─────────────────┘     └──────────────────┘     └─────────────────┘
  •       │                        │                        │
  •       │ • 下载补丁(HTTP)        │ • 注册账号              │ • authserver
  •       │ • 启动游戏              │ • 登录/新闻/公告        │ • worldserver
  •       │ • 直连 authserver       │ • SOAP API 创建账号     │ • SOAP API
  •       │ • realmlist 自动配置    │ • 账户管理              │
  •       │ • 版本检查/自动更新      │ • 服务器状态            │
  •       └────────────────────────┴────────────────────────┘


---

## 二、环境要求

### Web 端(PHP)

| 组件 | 最低版本 | 推荐版本 |
|------|----------|----------|
| PHP | 8.1 | 8.2+ |
| MySQL | 8.0 | 8.0+ |
| 必需扩展 | GMP, PDO-MySQL, Soap, GD, ZIP, Mbstring | 同上 |

**支持的环境:**
- Nginx + PHP-FPM
- Apache + mod_php
- PHP 内置服务器(测试用)
- Windows (IIS/XAMPP/WAMP) / Linux

### 登录器(C# WPF)

| 项目 | 说明 |
|------|------|
| 系统 | Windows 10/11 (x64) |
| .NET | 不需要安装!已自包含 |
| 大小 | 154.3 MB(单个 EXE) |

### 游戏服务器

| 组件 | 说明 |
|------|------|
| AzerothCore | WoTLK 3.0.0 分支 |
| authserver | 必须开启 SOAP |
| worldserver | 必须开启 SOAP |

---

## 三、Web 端架设攻略

### 3.1 部署到 Nginx + PHP-FPM(推荐)

**步骤 1:安装 Nginx 和 PHP**



  • # Ubuntu/Debian
  • sudo apt update
  • sudo apt install nginx php8.2-fpm php8.2-mysql php8.2-gmp php8.2-soap php8.2-gd php8.2-zip php8.2-mbstring

  • # CentOS/RHEL
  • sudo yum install nginx php php-mysqlnd php-gmp php-soap php-gd php-zip php-mbstring


**步骤 2:复制文件**



  • # 将整个 web 目录复制到网站根目录
  • sudo cp -r web/* /var/www/wowserver/
  • sudo chown -R www-data:www-data /var/www/wowserver/
  • sudo chmod -R 755 /var/www/wowserver/


**步骤 3:配置 Nginx**



  • server {
  •     listen 80;
  •     server_name your-domain.com;  # 改为你的域名或 IP
  •     root /var/www/wowserver;
  •     index index.php;

  •     client_max_body_size 50M;

  •     location / {
  •         try_files $uri $uri/ /index.php?$query_string;
  •     }

  •     location ~ \.php$ {
  •         fastcgi_pass unix:/run/php/php8.2-fpm.sock;
  •         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  •         include fastcgi_params;
  •     }

  •     # 禁止访问 config 目录
  •     location ~ /config/ {
  •         deny all;
  •     }

  •     # 禁止访问 .htaccess 等隐藏文件
  •     location ~ /\. {
  •         deny all;
  •     }
  • }


**步骤 4:重启 Nginx**



  • sudo systemctl restart nginx php8.2-fpm


### 3.2 部署到 Apache

**步骤 1:启用 mod_rewrite**



  • sudo a2enmod rewrite
  • sudo systemctl restart apache2


**步骤 2:配置 VirtualHost**



  • <VirtualHost *:80>
  •     ServerName your-domain.com
  •     DocumentRoot /var/www/wowserver

  •     <Directory /var/www/wowserver>
  •         AllowOverride All
  •         Require all granted
  •     </Directory>
  • </VirtualHost>


**.htaccess 文件已包含在项目根目录,无需额外配置。**

### 3.3 Windows 部署(XAMPP/WAMP)

1. 将 `web` 目录下的所有文件复制到 `htdocs/wowserver/`
2. 启动 Apache + MySQL
3. 访问 `http://localhost/wowserver/`

### 3.4 修改配置文件

编辑 web/config/config.php:



  • <?php
  • return [
  •     'db' => [
  •         'host' => '127.0.0.1',       // 数据库地址
  •         'port' => 3306,               // 数据库端口
  •         'user' => 'root',             // 数据库用户名
  •         'password' => 'your_password',// 数据库密码
  •         'auth_db' => 'acore_auth',    // AzerothCore auth 数据库
  •         'web_db' => 'acore_web',      // Web 端额外表数据库
  •     ],
  •     'soap' => [
  •         'host' => '127.0.0.1',       // SOAP 服务器地址
  •         'port' => 7878,               // SOAP 端口(默认 7878)
  •         'user' => 'admin',            // SOAP 用户名
  •         'password' => 'admin',        // SOAP 密码
  •     ],
  •     'site' => [
  •         'name' => '魔兽世界',    // 网站名称
  •         'url' => 'http://your-domain.com', // 网站 URL
  •     ],
  • ];


---

## 四、AzerothCore 服务器配置

### 4.1 启用 SOAP 服务

编辑 authserver.conf(或 etc/authserver.conf):



  • # 找到并修改以下配置
  • SOAP.Enabled = 1
  • SOAP.IP = &quot;127.0.0.1&quot;
  • SOAP.Port = 7878


编辑 worldserver.conf:



  • # 找到并修改以下配置
  • SOAP.Enabled = 1
  • SOAP.IP = &quot;127.0.0.1&quot;
  • SOAP.Port = 7878
  • SOAP.User = &quot;admin&quot;
  • SOAP.Password = &quot;your_soap_password&quot;


> &#9888;&#65039; **重要**: SOAP 用户名和密码必须与 `web/config/config.php` 中的配置一致!

### 4.2 重启服务器



  • # 停止
  • ./authserver.sh stop
  • ./worldserver.sh stop

  • # 启动
  • ./authserver.sh start
  • ./worldserver.sh start


或直接运行可执行文件:



  • ./authserver
  • ./worldserver


### 4.3 验证 SOAP 是否开启



  • # 检查 7878 端口是否监听
  • netstat -tuln | grep 7878

  • # 或用项目自带的测试脚本
  • php docs/test_soap.php


---

## 五、数据库初始化

### 5.1 创建 Web 端数据库

登录 MySQL:



  • mysql -u root -p


执行初始化脚本:



  • -- 创建 Web 端数据库
  • CREATE DATABASE IF NOT EXISTS acore_web DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  • -- 切换到 acore_web
  • USE acore_web;

  • -- 运行初始化脚本
  • SOURCE /path/to/web/admin/init_database.sql;


或直接运行 SQL 文件:



  • mysql -u root -p acore_web < web/admin/init_database.sql


### 5.2 创建的表

| 表名 | 用途 |
|------|------|
| `news` | 新闻/公告存储 |
| `user_sessions` | 用户登录会话 |
| `settings` | 网站设置(realmlist、服务器名等) |
| `admin_logs` | 管理员操作日志 |

### 5.3 验证

验证:



  • USE acore_web;
  • SHOW TABLES;
  • -- 应该看到:news, user_sessions, settings, admin_logs


---

## 六、登录器使用说明

### 6.1 下载与运行

1. 将 `WoWLauncher.exe` 下载到任意目录
2. **双击运行**(无需安装任何依赖)
3. 首次运行会在同目录下生成 `appsettings.json` 配置文件

### 6.2 首次设置

打开登录器后,点击 **「设置」** 按钮:

| 设置项 | 说明 | 示例 |
|--------|------|------|
| **游戏路径** | WoW 客户端安装目录 | `C:\Games\World of Warcraft` |
| **API 服务器地址** | Web 端的网址 | `http://192.168.1.100` |
| **游戏服务器地址** | Realmlist 地址 | `http://192.168.1.100` |

设置完成后点击 **「保存」**。

### 6.3 注册账号

1. 点击 **「注册账号」** 按钮
2. 填写用户名、密码、邮箱
3. 密码最少 6 个字符
4. 注册成功后会自动跳转到登录页面

### 6.4 登录游戏

1. 输入用户名和密码
2. 点击 **「登录」**
3. 登录成功后点击 **「开始游戏」**
4. 登录器会自动配置 `realmlist.wtf` 并启动游戏

### 6.5 realmlist 自动配置

登录器启动游戏前会检查游戏目录下 `Data\realmlist.wtf`:
- 如果文件不存在或内容不正确,会自动写入正确的 realmlist
- 原始文件会备份为 `realmlist.wtf.backup`

### 6.6 补丁下载

如果管理员在 Web 后台发布了新版本补丁:
1. 登录器启动时会自动检查更新
2. 弹出下载进度窗口,显示下载速度和剩余时间
3. 下载完成后自动应用补丁
4. 支持断点续传,网络中断后可继续

### 6.7 服务器状态

登录器主界面会显示:
- &#128994; 在线 — 服务器正常运行
- &#128308; 离线 — 服务器未启动或无法连接
- 在线玩家数量
- 每 30 秒自动刷新

---

## 七、管理后台使用

### 7.1 登录管理后台

访问:`http://your-ip/admin/login.php`

> 管理员账号需要在 `auth.account_access` 表中设置 `gmlevel >= 3`

### 7.2 管理后台功能

#### &#128240; 新闻管理
- 发布新公告(标题、内容、状态:草稿/发布/归档)
- 编辑已有新闻
- 删除新闻(软删除,改为归档状态)
- 登录器自动显示最新公告

#### &#128101; 用户管理
- 查看所有注册用户
- 搜索用户(用户名/邮箱)
- 重置用户密码
- 禁用/启用账号
- 查看用户详情

#### &#9881;&#65039; 服务器设置
- Realmlist 地址配置
- 服务器名称
- 最大玩家数
- 维护模式开关(开启后登录器显示维护提示)
- 注册功能开关

### 7.3 发布第一条新闻

1. 进入管理后台 → 新闻管理
2. 点击「发布新闻」
3. 填写标题和内容(支持简单 HTML)
4. 状态选择「已发布」
5. 保存后,登录器会自动显示

---

## 八、常见问题 (FAQ)

### Q1: 登录器提示「连接服务器失败」

**原因**:Web 端未启动或地址配置错误。

**解决**:
1. 确认 PHP Web 端可以正常访问(浏览器打开)
2. 检查登录器设置中的「API 服务器地址」是否正确
3. 确认防火墙未拦截 80/443 端口

### Q2: 注册账号失败

**原因**:SOAP 未开启或配置不正确。

**解决**:
1. 检查 `authserver.conf` 中 `SOAP.Enabled = 1`
2. 确认 `authserver` 正在运行
3. 检查 `config.php` 中的 SOAP 用户名密码是否正确
4. 测试 SOAP 连接:`php docs/test_soap.php`

### Q3: 游戏启动后卡在连接界面

**原因**:realmlist 配置错误或 authserver 未运行。

**解决**:
1. 检查游戏目录下 `Data\realmlist.wtf` 内容是否为 `set realist xxx.xxx.xxx.xxx`
2. 确认 authserver 正在运行(端口 3724 监听中)
3. 用登录器重新设置游戏服务器地址

### Q4: 登录后密码无法登录游戏

**原因**:密码加密格式不正确。

**解决**:
- AzerothCore 密码格式为 `SHA1(UPPER(username) + ':' + UPPER(password))`
- 确保用户名和密码的大小写与注册时一致
- 可以尝试通过 gameconsole 重置密码:`account set password 用户名 旧密码 新密码`

### Q5: Web 端显示「数据库连接失败」

**原因**:MySQL 未启动或配置错误。

**解决**:
1. 确认 MySQL 正在运行
2. 检查 `config.php` 中的数据库地址、用户名、密码
3. 确认 `acore_web` 数据库已创建

### Q6: 登录器打不开/闪退

**解决**:
1. 确认系统是 Windows 10/11 x64
2. 首次运行可能被 Windows Defender 拦截,点击「更多信息」→「仍要运行」
3. 尝试右键 → 以管理员身份运行

### Q7: 管理后台登录不了

**原因**:账号权限不足。

**解决**:


  • -- 在 MySQL 中执行,将账号设为管理员
  • UPDATE acore_auth.account_access SET gmlevel = 3 WHERE id = (SELECT id FROM acore_auth.account WHERE username = '你的用户名');

  • -- 如果 account_access 表中没有记录,需要插入
  • INSERT INTO acore_auth.account_access (id, gmlevel, realmid) VALUES ((SELECT id FROM acore_auth.account WHERE username = '你的用户名'), 3, -1);


---

## 九、目录结构说明



  • E:\Openclaw\0workspace\AzerothCore\dlq+web\
  • ├── WoWLauncher.exe              ← 登录器(单个 EXE 文件)
  • ├── 架设攻略与使用说明.md        ← 本文档
  • ├── launcher/                    ← C# WPF 登录器源码
  • │   ├── WoWLauncher.csproj       ← 项目文件(含单文件发布配置)
  • │   ├── App.xaml + .cs           ← 应用程序入口
  • │   ├── MainWindow.xaml + .cs    ← 主窗口(登录界面)
  • │   ├── Models/                  ← 数据模型
  • │   ├── ViewModels/              ← MVVM 视图模型
  • │   ├── Views/                   ← WPF 视图
  • │   ├── Services/                ← 服务层(API、游戏、配置、补丁、新闻)
  • │   └── Assets/                  ← 资源文件
  • ├── web/                         ← PHP Web 端
  • │   ├── index.php                ← 首页(新闻 + 服务器状态)
  • │   ├── register.php             ← 用户注册
  • │   ├── login.php                ← 用户登录
  • │   ├── profile.php              ← 个人中心
  • │   ├── forgot_password.php      ← 忘记密码
  • │   ├── news.php                 ← 新闻详情
  • │   ├── logout.php               ← 登出
  • │   ├── config/                  ← 配置文件
  • │   │   ├── config.php           ← 主配置(数据库、SOAP、网站)
  • │   │   ├── database_config.php  ← 数据库配置
  • │   │   └── soap_config.php      ← SOAP 配置
  • │   ├── includes/                ← 公共文件
  • │   │   ├── functions.php        ← 通用函数(加密、CSRF、XSS)
  • │   │   ├── header.php           ← 页面头部模板
  • │   │   ├── footer.php           ← 页面底部模板
  • │   │   ├── soap_client.php      ← SOAP 客户端封装
  • │   │   ├── server_status.php    ← 服务器状态检测
  • │   │   └── admin_auth.php       ← 管理后台认证
  • │   ├── api/                     ← API 接口
  • │   │   ├── login.php            ← 登录 API
  • │   │   ├── register.php         ← 注册 API
  • │   │   ├── server_status.php    ← 状态 API
  • │   │   ├── news.php             ← 新闻 API
  • │   │   ├── account.php          ← 账户管理 API
  • │   │   ├── config.php           ← 配置 API
  • │   │   └── player_info.php      ← 玩家信息 API
  • │   ├── admin/                   ← 管理后台
  • │   │   ├── index.php            ← 管理后台首页
  • │   │   ├── login.php            ← 管理后台登录
  • │   │   ├── news.php             ← 新闻管理
  • │   │   ├── users.php            ← 用户管理
  • │   │   ├── settings.php         ← 服务器设置
  • │   │   ├── header.php           ← 后台头部
  • │   │   ├── footer.php           ← 后台底部
  • │   │   ├── sidebar.php          ← 侧边栏导航
  • │   │   └── init_database.sql    ← 数据库初始化脚本
  • │   ├── assets/css/              ← 样式文件
  • │   └── templates/               ← 模板文件
  • └── docs/                        ← 文档
  •     ├── database-schema.sql      ← Web 端数据库表结构
  •     ├── soap-test.php            ← PHP SOAP 测试脚本
  •     └── soap-test.ps1            ← PowerShell SOAP 测试脚本


---

## &#128279; 相关链接

- [AzerothCore 官方文档](https://www.azerothcore.org/wiki/)
- [AzerothCore GitHub](https://github.com/azerothcore/azerothcore-wotlk)
- [项目源码](E:\Openclaw\0workspace\AzerothCore\dlq+web\)

---

## &#128221; 更新日志

### v1.0 (2026-04-26)
- 初始版本发布
- C# WPF 登录器(单文件 EXE)
- PHP Web 端 + 管理后台
- SOAP API 账号管理
- 新闻公告系统
- 补丁下载/自动更新
- 三重服务器状态检测
- 全面中文化


通过网盘分享的文件:dlq+web.zip
链接: https://pan.baidu.com/s/1UGXVK-tNnbfB6OphUkJjsw?pwd=w32e 提取码: w32e

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|白黑论坛 |网站地图

GMT+8, 2026-8-5 01:15 , Processed in 0.027814 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表