梦幻西游H5架设教程
关于梦幻西游
《梦幻西游》是一款由中国网易公司自行开发并营运的网络游戏。游戏以著名的章回小说《西游记》故事为背景,透过Q版的人物,试图营造出浪漫的网络游戏风格。梦幻西游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、PHP 7.4
- 数据库管理工具: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全局搜索并替换)。
创建以下数据库:
- account
- chargeserver
- gameserver(字符集UTF-8,排序规则utf8_unicode_ci)
- gmserver
- oaglobal
- operationanalysisserver
- worldserver
其中operationanalysisserver
名称过长,在宝塔界面会创建数据库失败,可以在phpMyadmin中创建。
上传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是否监听中,少任何一个都无法成功启动游戏。
netstat -lntp |
访问游戏链接:http://IP/cdn/
,使用你服务器的IP
输入用户名密码,点击一键注册或登录,等待资源加载完成,选择分区(只有一个区),进入游戏
如果加载到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,并非玩家账号的密码。