今天魔兽世界终于在中国正式运营了,虽然偶不玩..但还是保持了相当的关注:-)前段时间看过一个开源版本的”魔兽”,叫mangos,当时以为这个只是外围接口的实现,比如认证等等,并没去留意,不过昨晚一同事告知可以搭建”私服”,细看了一下,才知道这是个所谓的服务器端“模拟器”,当然搭建所谓的私服我就没兴趣啦,不过下载回来编译一下,看看人家的结构设计,环境实现等等,倒是蛮有兴趣的,所以,本篇文章,只是一个mangos<大芒果>在Linux(Debian)平台的搭建过程,不代表本人支持私服…实际上我是反对的:-)

源码下载及编译安装:

请参照http://getmangos.com/wiki/Compile_MaNGOS_On_Linux,在Debian lenny上无障碍直接编译通过

数据库创建及配置文件改动:

为了叙述的方便,我这里假设我安装的目录为$A,在这个目录下执行ls,应该能看到如下目录:

bin  etc  lib  mangos  scriptdev2

让我们先建立一下数据库

cd $A

cd mangos/sql

mysql -uroot -p < create_mysql.sql

mysql -uroot -p mangos < mangos.sql

mysql -uroot -p realmd < realmd.sql

mysql -uroot -p characters < characters.sql

这里说明一下,数据库mysql的安装我就不重新废话了,其中Setting up MaNGOS有提到这么一个数据库配置:

key_buffer = 100M
max_allowed_packet = 100M
thread_stack = 50M
thread_cache_size = 8
query_cache_limit = 50M
query_cache_size = 512M

这个配置是在一个具有8G内存,8核心CPU的机器上的配置,当然,我们可以按照自己的机器进行调整

接下来是mangos引擎的配置文件:

cd $A/etc

执行ls后应该可以看到如下文件:

mangosd.conf.dist  realmd.conf.dist  scriptdev2.conf  scriptdev2.conf.dist

执行:

mv mangosd.conf.dist mangosd.conf

mv realmd.conf.dist realmd.conf

编辑mangosd.conf找到如下内容:

LoginDatabaseInfo     = “127.0.0.1;3306;mangos;mangos;realmd”
WorldDatabaseInfo     = “127.0.0.1;3306;mangos;mangos;mangos”
CharacterDatabaseInfo = “127.0.0.1;3306;mangos;mangos;characters”

这里的值分别表示:

MySQL Server;MySQL port;MySQL 用户;MySQL密码;MySQL database

如果是直接导入本文上面提到的建库(表)语句的话,那这里的用户和密码都是mangos

接着再次编辑realmd.conf,找到:

LoginDatabaseInfo = “127.0.0.1;3306;mangos;mangos;realmd”

#这里字段的意思同上,不再复述

好了,激动人心的时刻就要到来,现在让我们启动游戏试试:

cd $A/bin

nohup ./mangos-realmd &

#这一步一般没问题,如果有问题,看看是不是MySQL权限问题

nohup ./mangos-worldd &

到这里就会有问题了,看log,出现如下错误:

Check existing of map file ‘./maps/0004331.map’: not exist!
Correct *.map files not found in path ‘./maps’ or *.vmap/*vmdir files in ‘./vmaps’. Please place *.map/*.vmap/*.vmdir files in appropriate directories or correct the DataDir value in the mangosd.conf file.

这里就涉及到下一部份了,魔兽世界客户端地图的解压问题。。偶还没下载完。待续:-)