本帖最后由 wlkejires 于 2026-2-2 20:13 编辑
想体验经典 Q 版西游霸服快乐吗?想体验满级 VIP 的尊贵吗?想体验一招秒杀的爽快吗?各种极品装备、翅膀、宠物通通给你,就在梦幻西游! 本文讲解梦幻西游 H5 游戏的架设教程,想研究 H5 游戏如何实现,体验游戏中秒天秒地秒空气的一定不要错过。





架设1. 架设条件梦幻西游架设需要准备: - linux 服务器,推荐 centos7/8 版本,可以考虑阿里云腾讯云等。
- 游戏源码
游戏源码中已去除广告,并修复部分功能。 2. 安装宝塔及环境宝塔是一个服务器运维管理软件,安装命令: | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh |
安装完后,按照提示信息登录宝塔(如果无法访问可能是由于服务器没有开放 8888 端口,参考第 5 条开放端口),并在宝塔软件商店中搜索以下软件安装: - web 服务器:nginx 1.20
- 数据库:mysql 5.6
- 编程语言:PHP 5.6
- 数据库管理工具:phpMyAdmin 4.9
3. 上传源码拿到源码后解压会得到 sql 和 xyh5 两个文件,将 xyh5 压缩文件通过宝塔上传到根目录(如果宝塔禁止上传到根目录,可上传其他路径后剪切粘贴到根目录)。

上传成功后解压到根目录

解压完成后,通过命令授予 777 权限 | chmod -R 777 /home/server | | chmod -R 777 /www/wwwroot/xy |
安装 lua 脚本 | cd /home/soft | | tar -zxvf lua-5.1.5.tar.gz | | cd lua-5.1.5 | | make linux test && make install |
安装 lua 相关依赖 | yum install readline-dev readline-devel unzip |
安装模块管理工具 luarocks | cd /home/soft | | tar -zxvf luarocks-3.0.4.tar.gz | | cd luarocks-3.0.4/ | | ./configure --with-lua=/usr/local --with-lua-include=/usr/local/include | | make && make install && make bootstrap | | luarocks install luasocket |
4. 导入数据库通过宝塔修改数据库 root 密码:echeverra(涉及到安全问题,建议修改成自己的密码,对应源码中的 echeverra 也需替换成自己的密码,推荐使用 webstorm 或 vscode IDE 全局搜索并替换)。

开放数据库远程权限: | mysql -u root -pecheverra | | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'echeverra' WITH GRANT OPTION; | | FLUSH PRIVILEGES; | | quit |
创建以下数据库: - account
- chargeserver
- gameserver(字符集 UTF-8,排序规则 utf8_unicode_ci)
- gmserver
- oaglobal
- operationanalysisserver
- worldserver
其中 operationanalysisserver 名称过长,在宝塔界面会创建数据库失败,可以在 phpMyadmin 中创建。 建议所有数据库都按照字符集 UTF-8,排序规则 utf8_unicode_ci 创建,否则会出现游戏创建角色失败的错误。 上传 sql 文件夹下的数据库文件并导入,以 account 为例(用户名密码默认即可,代码中使用 root 账户)。


5. 开放端口需要开放的端口: - 宝塔:8888
- phpmyadmin:888
- mysql:3306
- 游戏相关端口:80、10001、11001、12001 、8001、8004
服务器开放端口,以阿里云开放 10001 端口为例,其他端口按照同样方式添加,其他服务器也在安全里设置。

宝塔开放端口,同样以 10001 端口为例:

如果不开放端口,服务会无法访问,如果对安全没什么要求,可以直接开放 1-65535 端口。 6. 修改 IP源码中的 IP 是我自己虚拟机的,需要替换成你自己的服务器 IP。 需要修改 IP 的文件: | /www/wwwroot/xy/cdn/preload.js | | /www/wwwroot/xy/cdn/index.min.html | | /www/wwwroot/xy/cdn/serverlist.php | | /www/wwwroot/xy/cdn/serverlist.json |
举例修改 preload.js 文件,其他文件修改方式相同。 找到 preload.js 双击打开编辑模式,按 Ctrl+F 搜索 39.105.134.68,找到后替换成你的服务器 IP 并保存。

7. 创建游戏网站添加游戏网站才能访问游戏,网站域名写你的 IP,根目录为 /www/wwwroot/xy/,PHP 选择 5.6 版本。

8. 开启游戏以上都执行完毕,那么就到了激动人心的启动游戏啦,启动命令: | cd /home/server | | sh start.sh |

启动成功后查看下端口 10001、11001、12001 、8001、8004 是否监听中,少任何一个都无法成功启动游戏。

访问游戏链接:http://IP/cdn/,使用你服务器的 IP。

输入用户名密码,点击一键注册或登录,等待资源加载完成,选择分区(只有一个区),进入游戏,Nice~ 如果加载到 95% 一段时间不动,说明 10001 端口没有在监听中。 9.GM 工具游戏 GM 工具访问链接:http://IP/gm/gm.php,账号 admin,密码 123456,可以给游戏玩家授权 GM 功能,同样也可以给玩家充值发送物品。

刷新游戏后邮件查收。

10. 关闭游戏关闭游戏执行命令: | cd /home/server | | sh stop.sh |

后续1. 修改 GM 账号修改 GM 用户名密码需要修改文件 /www/wwwroot/xy/gm/config.php。

修改 $admin 和 $gmcode 即可修改 GM 的账号和密码,需要注意的是 $key 不可随意修改,如果修改需对应调整 gmkey 的值才能通过验证,而 gmkey 的值则是通过 md5($key) 得到。 2. 授权源码分析GM 工具可以对游戏玩家进行 GM 授权,授权有两种,vip1 充值只能进行元宝充值,vip2 充值邮件可进行元宝充值和物品发送。那么在代码中它是如何实现的呢?我们打开 /gm/adminquery.php 文件。

首先会通过 $uid.$pwd.$key 三个字段拼接后用 md5 加密,然后将用户 $uid 作用 key,$pwd、$vip、$qu 作 value 以数组形式保存到文件中来储存 vip 用户的信息。 打开 vip1.json 可以看到保存的数据:

同样,被授权玩家通过 http://IP/gm/ 打开玩家 GM 登录同样会读取 vip1.json 文件进行校验该用户是否为 vip 用户,所以玩家登录 GM 的密码和 GM 账号的密码一致为 123456,并非玩家账号的密码。 3. 使用域名访问有好奇的小伙伴会发现我架设的游戏链接是 http://gamecxxx.cn,并不是 IP,这是因为之前的搭建的大天使之剑使用的就是 IP 形式,宝塔提示重复,所以使用的域名形式,而且域名看起来更加专业嘛~ 改成域名访问也很简单,需要修改以下几处: 修改文件: | /www/wwwroot/xy/cdn/preload.js | | /www/wwwroot/xy/cdn/index.min.html |


需要注意的是,使用域名路径后的 /cdn/ 也省略掉。 接下来修改游戏网站,填写域名,根目录为 /www/wwwroot/xy/cdn/。

因为游戏路径到 /cdn/ 无法通过该域名访问上一级目录 /gm/,所以我们还需要建一个 GM 的域名 gm.xxx.cn 创建 GM 网站,目录为 /www/wwwroot/xy/gm/,访问链接:http://gm.xxx.cn。

4. 清空角色背包游戏中难免会出现 GM 工具发送物品过多甚至爆号的情况,这时候可以通过数据库清空角色背包物品来解决。 首先要清空背包的角色,退出游戏。 通过宝塔,打开菜单数据库中的 phpMyAdmin 工具,并登陆。 找到库 gameserver,点击上方 SQL 菜单,输入 sql 语句,其中账号替换为你的即可。 | ` | | SELECT characterid,account FROM character WHERE account = '账号' | | ` |

点击执行后,记下查询到的 characterid 字段值。
 再输入 sql 语句,其中 characterid 替换为你上一步查询到的即可。 | DELETE FROM item WHERE characterid = characterid |

点击执行,就成功删除了该角色的背包物品。
再次登陆游戏,你就会发现,角色的背包就空空如也啦~
源码地址:
|