本文及资源最后更新时间 2021-08-22 by sky995
利用韩国甲骨文作为前后端,腾讯轻量香港反代前后端加速。
演示站
环境要求
linux 1g内存以上 php5.6 mysql5.5
php7中gm工具无法创建数据表
mysql5.6以上服务端因为使用明文密码无法启动
我的环境:甲骨文自带Ubuntu18.04+宝塔PHP5.6、MySQL5.5、nginx
游戏下载
teambition直链打包下载:前端+后端+数据库+GM.zip
Teambition云盘直链解析平台 支持多用户,支持永久直链,支持列目录,文件夹分享
百度网盘下载: 数据库链接:https://pan.baidu.com/s/1XS6DXSIx6flzvaTF7wIeig 提取码:siv5 前端链接:https://pan.baidu.com/s/1Px8sD2wC3VGbEhtp0BY5SA 提取码:1vmd 后端链接:https://pan.baidu.com/s/1ekm2d-sWcHT37jfEjAyxow 提取码:g57v GM链接:https://pan.baidu.com/s/1_BUkYXXPTszHMVd7vsAzwA 提取码:e1ka
数据库
以此创建四个数据库,center、cross、user、xntg1
然后解压xiyousql.zip,按文件名依次导入同名数据库。
后端搭建
上传xiyou_server.zip到服务器/root目录解压,usr移动至服务器根目录。server和config移动至/root目录。
给予server目录777权限。server文件夹里的libc++文件夹及里面的文件给予755权限,不然启动报错。
修改1区配置文件目录
/root/server/sh
可以看到三个configure*.xml文件,只需要修改里面数据库的user根pass其他不动
完成后即可测试启动:
cd /root/server/sh | |
chmod +x gamectl.sh | |
./gamectl.sh start |
测试启动如果没问题即可按CTRL+C键退出,这里有我出现的两个问题解决方案可供参考:
问题1:error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory
解决方案:没有找到libssl.so.10文件,文件路径不一定是这个,自己在usr文件夹找找 | |
sudo ln -s /usr/local/openssl/lib/libssl.so.1.0.0 /usr/lib/libssl.so.10 | |
sudo ln -s /usr/local/openssl/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.10 |
问题2:while loading shared libraries: libtcmalloc.so.4: cannot open shared object file: No such file or directory
sudo echo “/usr/lib64” > /etc/ld.so.conf.d/local.conf | |
sudo ldconfig |
如果问题都解决了,那我们就可以正常使用了
查看帮助命令:./gamectl.sh help
cd /root/server/sh | |
./gamectl.sh help 显示当前帮助内容 | |
./gamectl.sh start 启动游戏服务 | |
./gamectl.sh startbg 后台运行游戏服务 | |
./gamectl.sh stop 关闭游戏服务 | |
./gamectl.sh forcestop 强制关闭游戏服务 | |
./gamectl.sh restart 重新启动游戏服务 | |
./gamectl.sh update 更新lua脚本 | |
./gamectl.sh startall 开启所有服务 | |
./gamectl.sh startbase 开启跨服逻辑相关服务 | |
./gamectl.sh stopall 关闭所有服务 | |
./gamectl.sh updateall 更新所有服务lua脚本 | |
./gamectl.sh center 启动中心服务 | |
./gamectl.sh centerbg 后台启动中心服务 | |
./gamectl.sh stopcenter 关闭中心服务 | |
./gamectl.sh updatecenter 启动中心服务lua脚本 | |
./gamectl.sh cross 启动跨服服务 | |
./gamectl.sh crossbg 后台启动跨服服务 | |
./gamectl.sh stopcross 关闭跨服服务 | |
./gamectl.sh forcestopcross 强制关闭跨服服务 | |
./gamectl.sh updatecross 启动跨服服务lua脚本 |
我们正常使用的话,就用./gamectl.sh startbg和./gamectl.sh crossbg。
前端搭建
上传西游H5前端.zip到网站根目录解压即可。
修改网站根目录下config.php 文件中11-15行:
‘dbip’=>‘127.0.0.1’, //数据库IP | |
‘dbuser’=>‘user’, // 数据库帐号 | |
‘dbpwd’=>‘user’, //数据库密码 | |
‘dbname’=>‘user’, //数据库名称 |
index.php文件中,490行:
//调试服务器ip列表 | |
var serverList = [ | |
“1号服务器|公网IP地址:5201”, |
到这里我们就可以尝试进入游戏了,如果一切没问题的话,就能正常进入玩耍了。
GM工具
上传gm.zip到网站根目录或者其他目录。
修改config.php 10,11行数据库用户名和密码,这里建议填数据库root用户和密码:
$db_username=‘root’;//数据库帐号 | |
$db_password=‘xxxxx’;//数据库密码 |
35-37行是GM登陆用户名和密码还要数据库名,数据库名建议随便输一个或者默认,不用自己去新建数据库:
$admin=‘admin’; //首次登陆账号 | |
$adminpass=‘123456’; //首次登陆密码 | |
$gmdb = “gm”; //后台数据库名称 |
到这里就结束了,下面是进阶教程,可忽略。
自动重启和便捷重启服务端
宝塔添加计划任务-shell任务,每天或者每小时运行。
如果我们服务端卡死了,也可以手动点执行即可完成重启。
以下是脚本内容,上面三条是关闭命令,下面四条是启动命令,其中三条是跨服有关的。
#/bin/sh | |
cd /root/server/sh | |
./gamectl.sh forcestop | |
./gamectl.sh stopall | |
./gamectl.sh forcestopcross | |
sleep 30 | |
./gamectl.sh startbg | |
sleep 30 | |
./gamectl.sh crossbg | |
./gamectl.sh updatecross | |
./gamectl.sh startbase |
反代后端和开启https(可选)
开启https
宝塔直接申请Let免费证书或者用你自己的证书开启https即可,开启http强制跳转https。
反代后端
在你的网站配置文件加上以下代码即可,只适用于nginx:
location /xyapi/ { | |
rewrite ^/xyapi/(.*)$ /$1 break; | |
proxy_pass http://IP:5201; | |
proxy_http_version 1.1; | |
proxy_set_header Upgrade $http_upgrade; | |
proxy_set_header Connection “upgrade”; | |
} |
前端开启wss后端
开启https的话,你在网站根目录index.php 第490设置的服务器列表将不会生效,需要修改index.php以下内容:
index.php第466行的后端链接 | |
var __CONFIG__ = { | |
“__SER_URL__”: “game.tvv.tw/xyapi/”, | |
“__PLATFORM_ID__”: 1, | |
这是我的反代后端,自行修改成你自己的反代后端链接 |
还要修改/libs/modules/start/start.min.js第1801行:
a = “wss://” + s + “:50000/” + i % 1e4 + “/” | |
改为 | |
a = “wss://” + s + i % 1e4 + “/” |
改了这个js以后,建议清除浏览器缓存,否则一直无法正常登陆。
到这里就正式结束了,感谢你的浏览。
参考链接:https://www.liuzelin.com/study/xiyou.html