简单说一下阿拉德手游如何自己搭建架设

阿拉德类似DNF游戏的一款手游,当然官方已经倒闭了,今天记录一下个人搭建单机的方法。

服务器需求

服务器系统使用CentOS7.6即可,安装好系统以后,直接到宝塔官网复制安装面板的命令,安装宝塔面板即可,这里不再赘述。

安装环境

需要安装一下软件:

nginx1.18  mysql 5.6  php7.1(php安装 sg11 redis扩展 安装之后重启php)Redis 6.2.6  PM2管理器

防火墙设置

关闭防火墙或是开放端口

第一种方法:宝塔放行端口:1-65535的TCP UDP端口

第二种方法:关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

开始架设

1.上传ald.tar.gz到服务器根目录/(根目录不是root目录!!使用WinSCP或其他工具上传数据,也可以直接宝塔传!!)

2.解压ald.tar.gz

cd /
tar zxvf ald.tar.gz

3.给予 777权限

chmod -R 777 /root/
chmod -R 777 /www/wwwroot

4.环境配置

ln -s /www/server/mysql/lib/libmysqlclient.so /usr/lib64/libmysqlclient.so
ldconfig

5.安装gcc5.2环境

cd /root
wget --no-check-certificate https://copr.fedoraproject.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap/repo/epel-6/hhorak-devtoolset-4-rebuild-bootstrap-epel-6.repo -O /etc/yum.repos.d/devtoolset-4.repo
//上面是一条命令!!!全部复制粘贴!
yum install compat-libgmp-4.3.1-1.sl7.x86_64.rpm -y
yum install compat-libmpfr-2.4.1-1.sl7.x86_64.rpm -y
yum install devtoolset-4-gcc devtoolset-4-gcc-c++ devtoolset-4-binutils -y
scl enable devtoolset-4 bash

6.修改root目录的.bashrc文件,添加如下内容:

source /opt/rh/devtoolset-4/enable

数据库设置

1.设置数据库密码为服务端所需的密码

2.修改数据库配置文件为

[client]
#password  = your_password
port    = 3306
socket    = /tmp/mysql.sock
default-character-set=utf8mb4

[mysqld]
binlog_cache_size = 512K
thread_stack = 1024K
join_buffer_size = 8192K
query_cache_type = 1
max_heap_table_size = 4096M
port    = 3306
socket    = /tmp/mysql.sock
datadir = /www/server/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 2048M
max_allowed_packet = 100G
table_open_cache = 4096
sort_buffer_size = 8192K
net_buffer_length = 4K
read_buffer_size = 8192K
read_rnd_buffer_size = 4096K
myisam_sort_buffer_size = 128M
thread_cache_size = 512
query_cache_size = 798M
tmp_table_size = 4096M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#skip-name-resolve
max_connections = 2000
max_connect_errors = 100
open_files_limit = 65535

#log-bin=mysql-bin
#binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/www/server/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on

innodb_data_home_dir = /www/server/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /www/server/data
innodb_buffer_pool_size = 8192M
innodb_log_file_size = 1024M
innodb_log_buffer_size = 1024M
innodb_flush_log_at_trx_commit = 0
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 32
innodb_write_io_threads = 32

character-set-client-handshake = false
character-set-server = utf8
init_connect='SET NAMES utf8'

innodb_file_per_table
innodb_file_format=Barracuda
innodb_strict_mode=0

[mysqldump]
quick
max_allowed_packet = 500M

[mysql]
no-auto-rehash
default-character-set = utf8

[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 8M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

3.重启数据库

4.执行命令导入数据库

cd /root
./sk

数据库创建结束。可以通过宝塔查看是否创建成功。(数据库 - 点击 从服务器获取 获取到10个就正确的)

运行后为了安全可以把 sk 文件删除

5.进入数据库修改ald_web数据库中tk_gameconfig表中IP地址为你服务器的外网IP地址,否则进不去游戏。

搭建网站

1.新建一个网站-你的ip:端口或域名:端口

有端口就添加端口这里的端口80 (你也可以用其他的端口,不过就需要对应客户端都改),网站目录设置/www/wwwroot/game,运行目录 /public,设置伪静态 thinkPHP,关闭防跨站。

2.服务端和网站修改192.168.X.X修改为你的IP

服务端修改文件:
/root/platform/CenterServer/CenterServer.cfg
/root/platform/RelayServer/RelayServer.cfg
/root/platform/RelayServer1/RelayServer.cfg
/root/platform/UdpConnServer/UdpConnServer.cfg
/root/platform/UdpConnServer1/UdpConnServer.cfg
/root/s1/AdminServer/AdminServer.cfg
/root/s1/AdminServer/NetAddress.xml

网站修改文件:
/www/wwwroot/game/application/pay/view/home/gateway.html

到此算服务端就修改好了,下面就可以启动服务器了。

启动游戏

1.启动platform服务器

cd /root/platform
./run.sh

2.启动游戏一区

cd /root/s1
./run.sh

3.启动NodeJS服务器

宝塔配置PM2管理器

设置启动文件为:
/www/wwwroot/gmald/src/app.js

说明:

PM2添加项目出错解决方法 (更换Node版本)

游戏总是掉线的解决办法:PM2添加的项目内存加大

4.启动后可以通过端口查看命令查看游戏服务器是否正常

netstat -lntp

关闭游戏

1.关闭platform服务器

cd /root/platform
./stop.sh

2.关闭游戏一区

cd /root/s1
./stop.sh

客户端修改

这里只说一下安卓客户端的修改:

修改192.168.x.x为你的ip,其他的ip都不要修改

路径:
assets/updateserver.json
assets/bin/Data/Managed/Assembly-CSharp.dll

使用dnSpy软件反编译Assembly-CSharp.dll,然后在右侧窗口的搜索下填入需要搜索的IP地址,类型是:数字/字符串,在搜索到的IP地址上点击右键,选择修改变量,如果没有就选择编辑IL指令,改写完后重新保存即可。

另外还有一种客户端是需要修改assets/bin/Data/Managed/Metadata/global-metadata.dat这个文件,这个文件要使用uedit64编辑器编辑,并且IP地址和端口的位数要对上,否则会出现连接不到服务器的情况。如果修改的IP地址为 “XXX.XXX.XXX.XXX:XX” 这样的,位数不够补正斜杠“/”,位数超出的就需要用同位数的域名代替,暂时没有发现其他的好办法!

以上如有不对,欢迎广大网友批评指正!