重要提示:
Special thanks:
非常感谢Bruce Liu
,Isaac Wang
的鼎力支持,特别是在网络调试💻,数据库修复🔏,以及资源查找🔎等诸多方面提供的帮助。
马泽拉斯
我们来到这个世界,无数冒险由此展开。
我们英勇抗击,那些威胁王国和平的敌人。
我们远征异域,将阴影与烈焰的魔王赶回深渊。
当死亡之潮即将吞噬一切之物时,是我们,守在前线。
我们经受了世界的崩坏,又将挑战灭世者,终结它的毁灭循环。
然而,我们所抗争的邪恶势力,并非轻易就能驱除,一切胜利果实,也并非轻易就能守护。
如今,它们又来了!!!
为啥是又???
军团再临
在德拉诺之战结束之后,凯旋的英雄们回到艾泽拉斯,发现暴雪又开始炒冷饭,狗二蛋和他的燃烧军团又回来了,军团再临
的故事由此展开…
关键词
- Trinitycore 开源的MMO框架
- 军团再临 全新的军团再临服务器
- Debian Server搭建在Debian Server上的魔兽世界
- MySQL 免费又好用的数据库
- Bootstrap 免费,整洁,优雅的网站模板,简称“BT”
- PHP 7.0 迄今为止,PHP依然是世界上最好的语言,没有之一
- 马伯恩的小站
How To Play?
- 注册账号
通过军团再临注册页面注册一个账号
- 下载客户端
找一个7.3.5(26972)的游戏客户端
- 修改服务器配置
默认目录是"C:\Program Files\World of Warcraft"。进入目录后,打开名为"WTF"的目录。打开Config.wtf文件,并更改内容为:set portal "www.majun.fun"
- 登录游戏即可。
Bug的提交
可以通过在线bug提交:Legion 735任务问题汇总
技术分享
游戏固然好玩,但我们这是一个技术博客。如同开头的红字,
所以我们就分享一下在此搭建一个游戏服务器时会遇到的问题。
MySQL
数据库永远是一个产品的灵魂。在与数据库的交互过程中,我们或多或少会遇到一些有的没的的问题,比如:
MySQL环境
Could not find the MySQL libraries! Please install the development libraries and headers.
这个报错解决很简单,替换libmariadbclient-dev的安装包即可:
sudo apt-get install libmariadb-client-lgpl-dev-compat
重置root账户密码
有些人会经常忘记root的密码,这个时候我们可以添加--skip-grant-tables
来规避MySQL的验证机制:
- 启用无需验证的MySQL服务:
mysqld --default-file=my.cnf --console --standalone --skip-grant-tables
- 登录MySQL
mysql -u root -p
- 刷新MySQL权限,这一步一定要做,否则仍会报权限错误:
FLUSH PRIVILEGES;
MySQL权限
尽管我们已经使用了root账户登录,但是仍然会遇到类似于权限的报错:
'Access denied for user 'root'@'localhost' (using password: YES)'
我们需要更新一下root的权限,使用命令:
GRANT ALL PRIVILEGES ON database_name.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
MySQL触发器
在7.3.5的legion core中,暴雪引入了战网账号
的概念,也就是bnetaccount。
在创建bnetaccount的时候,不会自动将bnetID关联到account的信息中,所以我们需要手动添加一个触发器来自动完成这个操作。 参考如下处理器逻辑:
CREATE DEFINER=`root`@`localhost` TRIGGER `legion_auth`.`battlenet_accounts_AFTER_INSERT` AFTER INSERT ON `battlenet_accounts` FOR EACH ROW
BEGIN
insert into legion_auth.account (username,battlenet_account) values (new.email,new.id);
END
SWAP分区
我的服务器是Debian系统,因为《军团再临》内核版本的特殊性,它要求的openSSL版本和booster版本与Debian系统的版本有冲突,所以我不得不在虚拟机中单独运营legion core,这时候就需要用到Swap分区,也就是Windows中的虚拟内存。
左侧Memory为物理内存,右侧Swap为虚拟内存
我们不需要关心Linux内核如何分配或者调用Swap分区,只需要给一个较大的值(得益于现在廉价的内存和硬盘),保证我们的虚拟机能够流畅运行即可。
- 检查Swap分区
free -h
- 关闭Swap文件
sudo swapoff
- 删除默认的Swap文件
sudo rm -f /swapfile
- 创建新的Swap文件,大小为4G
dd if=/dev/zero of=/srv/swapfile bs=1M count=4096 status=progress
- 赋予Swap文件权限
chmod 0600 /srv/swapfile
- 启用Swap文件
swapon /srv/swapfile
- 检查Swap文件
swapon -s
输出结果:
Filename | Type | Size | Used | Priority |
---|---|---|---|---|
/srv/swapfile | file | 4194300 | 0 | -2 |
后记
当然,这些总结只是服务器的搭建过程中的冰山一角,我们或多或少会遇到各种各样的问题,但是我们有好朋友,所有问题都会迎刃而解。