传奇手游架设的核心框架就三样东西:**服务器、服务端程序、客户端APK**。服务器负责跑游戏逻辑,服务端程序是游戏的“大脑”,客户端就是玩家手机里装的那个APP。小白最容易卡住的地方不是技术难度,而是**资源找错、IP改错、启动顺序搞反**。下面按实际操作顺序拆解,每一步都标清楚做什么、怎么做、错了怎么排查。
## 一、先搞明白要准备什么
架设之前需要备齐这几样东西,缺一个都跑不起来。
**一台服务器**。初期测试用2核4G、5M带宽的云服务器就够,传奇手游服务端跑起来大概占2.5G内存左右。系统选 **CentOS 7.6**,这是最稳的选择,网上的教程和解决方案基本都是基于这个版本,换了系统很多命令对不上,新手容易卡在环境问题上。买服务器的时候选**按月付费**,别一上来就买一年,先花几十块钱试一个月,跑通了再续。
**一套服务端程序**。去传奇资源站找“整合版手游服务端”,不要下那种零散的文件包。整合版里已经包含了引擎程序、数据库脚本、配置工具,省得自己拼凑。常见的引擎有战神引擎、白日门引擎、HERO手游版,新手建议从白日门或HERO入手,教程相对多。
**一个手游客户端APK**。必须和服务端引擎匹配,服务端是白日门引擎就下白日门适配的APK,服务端是HERO就下HERO的客户端。不匹配的客户端连不上服务器,界面也是乱的。
**辅助工具三件套**:**宝塔面板**(服务器图形化管理,不用敲命令)、**Notepad++**(改配置文件,系统记事本会乱码)、**APK签名工具**(改完客户端必须重新签名才能装到手机上)。
## 二、服务器环境搭建
拿到服务器后,先用SSH工具连上去。Windows电脑可以装FinalShell或Xshell,Mac用终端自带的ssh命令。
连上之后第一件事,装宝塔面板。复制下面这行命令到终端里执行:
```
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
```
执行过程中会问你是否同意协议,输入 `y` 回车。装完之后屏幕上会显示**宝塔的登录地址、用户名和密码**,立刻复制到记事本存好,关掉终端就找不回来了。
打开浏览器,输入宝塔地址(格式是 `http://你的服务器IP:8888/一串字符`),登录进去。第一次登录宝塔会弹窗推荐安装环境,按下面选:
- **Nginx 1.18**
- **MySQL 5.6**(不要选5.7或8.0,老服务端对高版本兼容性差)
- **PHP 5.6**
- **phpMyAdmin 4.4**
勾选完点一键安装,这个过程大概十几分钟,可以去干别的。安装完成后,在宝塔的“安全”菜单里把防火墙关掉,或者开放所有端口。云服务器控制台的安全组也要放行所有端口,新手先全开,跑通了再收紧。
## 三、上传服务端并修改IP
把下载好的服务端压缩包通过宝塔的“文件”功能上传到服务器,建议解压到 **/data** 目录下。解压完成后,用宝塔的终端或SSH进去,给目录权限:
```
chmod -R 777 /data/
```
接下来是**最关键的步骤:改IP**。服务端里所有配置文件默认写的是 `127.0.0.1` 或者一个测试IP,必须全部替换成你服务器的**公网IP**。
需要改的文件通常有这些(不同引擎文件名可能略有差异,但路径规律差不多):
```
/data/sbin/resource/config/gateway_cfg.lua
/data/sbin/resource/config/session_cfg.lua
/www/wwwroot/game/api/ym_api.php
```
用宝塔的文件管理器找到这些文件,双击打开,Ctrl+F 搜索 `127.0.0.1` 或原来的IP,全部替换成你的公网IP,保存。如果服务端自带“一键修改IP”脚本,直接运行那个脚本更省事,但跑完之后要手动检查一遍有没有漏掉的。
## 四、导入数据库
服务端压缩包里通常有个 `DB` 或 `Database` 文件夹,里面是SQL数据库文件。先在宝塔的数据库菜单里**把root密码改成 `pwd123456`**(这是很多服务端的默认密码,不改的话导入会报错)。
然后用宝塔终端进入服务端目录,执行导入命令。不同服务端的导入方式不一样,常见的命令是:
```
cd /data
./sk
```
或者通过phpMyAdmin手动导入。导入完成后,可以用宝塔的phpMyAdmin看看数据库里有没有生成表,有表就说明导入成功了。
## 五、启动服务端
服务端由多个程序组成,**启动顺序绝对不能乱**,乱点会导致进程闪退或数据异常。
按这个顺序启动:
**第一步**:启动网站(如果是用宝塔的Nginx,确保Nginx是运行状态)
**第二步**:DBServer(数据库服务,双击后点START ENGINE)
**第三步**:ItemLogServer(日志服务,点START)
**第四步**:Run(运行)
**第五步**:LoginGate(登录网关)
**第六步**:GGService(游戏网关)
**第七步**:M2Server(核心游戏逻辑,这个是重点,保持窗口开着不要关)
启动过程中,**所有程序窗口都保持最小化,不要点关闭按钮**,关了任何一个都可能导致游戏出问题。
## 六、修改客户端APK
服务端跑起来了,接下来处理手机上的客户端。用压缩软件(比如好压或360压缩)打开APK文件,**不要解压**,直接在里面找到这个文件:
```
/assets/res/project.manifest
```
把它拖出来,用Notepad++打开,把里面的IP改成你服务器的公网IP,保存。然后把改好的文件**拖回压缩包里覆盖原文件**。
**重要**:改过的APK必须重新签名才能装到手机上。用APK签名工具(比如AutoSign或ApktoolBox),选择修改后的APK,点签名,等它跑完。
## 七、测试连接
把签名后的APK装到安卓手机上(或者雷电模拟器里),打开游戏,应该能看到登录界面。注册一个账号,进游戏试试能不能跑图、打怪。
如果连不上服务器,按顺序排查这几个地方:
- 服务端所有程序窗口是不是都在运行
- 客户端里改的IP是不是和服务器的公网IP一致
- 服务器安全组和宝塔防火墙是不是都放行了端口
- 客户端APK有没有重新签名
如果进游戏黑屏或者花屏,说明客户端和服务端版本不匹配,换一个配套的客户端重试。
## 八、常见报错和解决
**MongoDB启动失败**:如果服务端用MongoDB,注册Windows服务时用绝对物理路径,不要用映射盘符。注册之前先以前台模式启动一次,确认配置没问题再注册服务。
**数据库连不上**:检查宝塔里MySQL的root密码是不是改成了服务端要求的密码(通常是pwd123456),检查服务端配置文件里的数据库连接信息是否一致。
**端口被占用**:用 `netstat -lntp` 查看端口监听情况,如果服务端要用的端口被其他程序占了,要么关掉那个程序,要么改服务端的端口配置。
**客户端闪退**:APK签名有问题,换一个签名工具重新签,或者换个模拟器测试。
## 九、架设完成之后
游戏跑通之后,可以用服务端提供的GM后台给自己刷装备、调等级。GM后台的地址通常是 `http://你的IP:88` 或者服务端说明里写的地址,账号密码在服务端的配置文件里找。
日常维护方面,**数据库定期备份**是最重要的事,服务端的 `/data` 目录和数据库都建议每周备份一次。合区、清档这类操作,严格按照引擎自带的教程来,不要自己乱删文件。

