当前位置 : 145z游戏站 | 魔域 | 技术教程 | 

手游源码架设与手游平台搭建全流程解析:服务端到客户端实操步骤

热度:
一、服务器与系统选型
手游服务端优先选 Linux(CentOS 7.x / Ubuntu 20.04 64位),最低 2核4G、50GB磁盘可本地测试,外网多人在线建议 4核8G 起步。Windows Server 多用于传奇类 GOM/HERO/战神引擎。云主机需放行端口:TCP 3306(MySQL)、6379(Redis)、80/443(Web)、游戏网关端口(如 7001/7002/8080/9000 等)。本地测试可关防火墙,外网务必做端口收敛与日志留存。

二、基础环境安装
Linux 常规 Java + MySQL + Redis 架构命令:
apt update 或 yum update
yum install java-1.8.0-openjdk -y
yum install mysql-server -y 或 apt install nginx mysql-server redis-server
systemctl start mysqld && systemctl enable mysqld
mysqladmin -u root password "自定义密码"
若用宝塔面板:装 Nginx 1.18、MySQL 5.6/5.7、PHP 5.6/7.4、phpMyAdmin、Redis 扩展,删除 PHP 禁用函数 exec 便于启动脚本调用。

三、上传与解压源码
用 FileZilla / WinSCP 把 server.zip 或 tar.gz 传到 /usr/local 或 /opt,解压:
unzip server.zip
tar -zxvf server.tar.gz
chmod -R 777 /opt/game_server
确认目录结构通常含:bin/(启动脚本)、config/(配置)、sql/(数据库脚本)、GameGate/LoginServer/SceneServer/MainServer 等模块。

四、数据库导入与账号配置
登录 MySQL:
mysql -u root -p
CREATE DATABASE game_db DEFAULT CHARSET utf8mb4;
USE game_db;
SOURCE /opt/game_server/sql/init.sql;
建立专用账号而非直接用 root:
CREATE USER 'gameuser'@'localhost' IDENTIFIED BY '强密码';
GRANT ALL ON game_db.* TO 'gameuser'@'localhost';
FLUSH PRIVILEGES;
字符集切忌混用,GB2312/utf8/utf8mb4 按源码原样保留,否则中文道具名乱码。

五、核心配置文件修改(最容易出错)
逐文件核对下列参数,IP 必须填公网 IP,写内网 127.0.0.1 会导致外部客户端进不去:
1. application.properties / env.conf / db.xml
db.host=127.0.0.1
db.user=gameuser
db.pass=强密码
db.name=game_db
redis.host=127.0.0.1
2. serverlist.json / defServerList.json / config.properties / IPList.txt
"ip":"公网IP"
"loginUrl":"http://公网IP:9000"
"dataUrl":"http://公网IP:8080"
3. gateway_cfg.lua / session_cfg.lua / mir2.def.ini
监听端口、世界服地址、跨服回调地址全部对齐。
批量替换可用:sed -i 's/127.0.0.1/公网IP/g' /opt/game_server/config/*

六、启动服务端进程
标准 MMO 启动顺序:LoginCenter → UserCenter → RoomCenter → GameGate → SceneServer → WorldServer → MainServer。
Linux 执行:
cd /opt/game_server/bin
./start.sh 或 nohup ./start.sh &
./q.sh(部分传奇架构)
Windows 双击 游戏控制器.exe 或 MainServer.exe。
启动后查进程:ps aux grep GameSrv;查端口:netstat -lntp
grep 7001。失败先看 log/ 下报错,90% 是 IP、库名、密码不一致。

七、Web 后台与 GM 工具部署
Nginx 建站,根目录指向源码内 webadmin 或 www 文件夹,配置:
location /api { proxy_pass http://127.0.0.1:3000; }
后台地址通常为 http://公网IP:81/zt/gm.php 或 /gm,默认 admin/admin、admin/admin888,首次登录强制改密。
GM 功能:角色等级、元宝、道具ID发放(参照 item.xls)、全服公告、BOSS刷新、活动开关。改库方案:Navicat 连 MySQL → player 表 → admin_level=10、is_gm=1。

八、客户端打包与多端适配
Android:解压 APK,改 assets/config.properties、defServerList.json、netconfig.lua、strings.xml 中 IP → 公网IP,重打包用 keystore 签名:
keytool -genkey -v -keystore game.keystore -alias k1 -keyalg RSA -validity 10000
apksigner sign --ks game.keystore app-release-unsigned.apk
iOS:改 Payload/xxx.app/defServerList.json,Xcode 开工程配证书,出 TestFlight 或 IPA。
H5 / Cocos:Cocos Creator 改 main.js 中 window.GAME_CONFIG,构建 Web-Mobile,Nginx 托管;热更新配 project.manifest 指向 CDN /res/。

九、手游平台源码(盒子/分发站)搭建差异
平台端额外模块:用户注册登录、游戏列表、礼包码、充值订单、推广统计、工单。技术栈多为 Spring Boot + MyBatis + LayUI 或 Node.js + Express + MySQL + Redis。
建表:user、game_account、order、server_list、cdkey、notice。
Nginx 反代后端 API,前端静态页放 /var/www/html,后端 node server.js 或 java -jar platform.jar,pm2 守护:
pm2 start server.js --name platform
支付与第三方接口按持有资质接入,数据库密码、Token 密钥写环境变量,不硬编进代码。

十、联调与排错清单
1. 能开服但玩家进不去 → IP 写成内网、端口未放行、client 配置未改
2. 启动即崩 → MySQL 没导入、字符集冲突、内存不足(加 swap 4–8G)
3. 登录闪退 → LoginServer 未起、token 校验失败、Redis 未连
4. 道具/等级不改 → GM 权限未生效、player 表字段名不符
5. 外网卡顿 → 带宽不足、未做网关与逻辑服分离、Nginx 未开 keepalive
日志路径固定查 log/、logs/、server.log,改一处配置重启对应模块即可,不必全服重启。

十一、备份与长期维护
每日 mysqldump 导出 game_db > backup_$(date +%F).sql
服务端目录 tar -zcvf server_bak.tar.gz /opt/game_server
配置变更前先 cp config config.bak。版本迭代走 Jenkins / Ansible 或手工替换 bin+config,保留 sql 增量脚本。监控用 Prometheus + Grafana 看 CPU、内存、连接数,进程掉线用 cron + pgrep 拉起。
[顶部]