一.AU服务器的安装配置
1.Java环境安装配置
AU的 manager和auth机器需要安装java环境
将java.tar.gz解压至/usr/目录下,编辑/root/.bash_profile,(参见bash_profile)加入以下几行:
PATH=$PATH:/usr/java/jdk1.5.0_05/bin
export CLASSPATH=.:/usr/java/jdk1.5.0_05/lib/dt.jar:/usr/ java/jdk1.5.0_05/lib/tools.jar
export JAVA_HOME=/usr/java/jdk1.5.0_05
安装au database需要的JDBC库,并将库文件加入到/root/.bash_profile中的CLASSPATH配置项中
2.CA认证配置和hostname-ip配置
将ssl.tar.gz 解压至manager:/etc/目录下
在/etc/hosts文件加入一行:
aumanager_ipaddress aumanager
其中aumanager_ipaddress为aumanager的内部IP地址
修改manager:/export/auth/etc/hosts,和auth:/etc/hosts,加入一行:
aumanager_ipaddress manager
其中aumanager_ipaddress为aumanager的内部IP地址
3.帐号数据库的创建
创建帐号数据库,根据mssql_table.sql和mssql_storeprocedure.sql示例文件创建数据库表和存储过程
4.配置文件修改
修改好table.xml文件中关于帐号数据库连接的部分将修改好的table.xml复制到manager:/etc/目录,/export/auth/etc/目录和auth:/etc/目录下
修改gmopgen.xml文件中关于各游戏服务器的属性将修改好的gmopgen.xml复制到manager:/etc/目录下(/etc/gmopgen.xml是服务器列表配置文件,该文件需要根据游戏服务器的增添来添加和修改XML中的zone项,必须准确填写id(服务器ID,唯一标识该服务器,与游戏服务器中gdeliveryd的相应设置要一样),aid(计费区ID,与游戏服务器中gdeliveryd的相应设置要一样,一般情况下,免费版所有服务器都使用同一个计费区ID),name(服务器名称),url(访问游戏服务器对外接口的webservice url)四个属性)
将authd.conf文件复制到/export/auth/etc/目录和auth:/etc/目录下
将GMServer.conf文件修改相应IP配置信息和密钥配置信息后,复制到manager:/etc/目录下
5.Authd服务安装启动
解压cauthd.tar.gz至auth:/root/目录,进入cauthd/build目录,确认java环境配置正常,后台运行
#./authd &
如果工作正常,不会有Exception输出到屏幕常见的错误可能是,找不到JDBC类文件,或者未正常连接数据库然后按Ctrl+D退出会话,authd在后台继续运行
authd是一个脚本,它会启动一个java进程并监视该java进程,如果java进程被杀掉10秒后会自动再起一个
所以,重起Authd服务只需在auth机器上执行killall -9 java
如果要彻底关闭Authd服务,则先执行killall -9 authd,再执行killall -9 java
6.Tomcat安装配置及GMServer安装
将jakarta-tomcat-5.5.9.aumanager.tar.gz解压至/usr/local/目录,
运行/usr/local/jakarta-tomcat-5.5.9/bin/startup.sh启动tomcat
在aumanager上运行killall -9 java可以关掉tomcat进程
将/usr/local/jakarta-tomcat-5.5.9/webapps/目录下内容清空,将GMServer.war和monitor.war文件复制到/usr/local/jakarta-tomcat-5.5.9/webapps/目录下,重起tomcat这时可以访问https://aumanager-ipaddress/monitor页面 查看tomcat的输出文件/usr/local/jakarta-tomcat-5.5.9/logs/catalina.out,看是否正常工作
7.检测Au是否正常工作
在auth机器上启动authd,在manager机器上启动tomcat然后检测以下项目是否正常工作
1)在auth机器上执行netstat antp命令,查看java进程是否在LISTEN 29200端口,该端口会接收来自各游戏服务器delivery的连接查看java进程是否有到数据库机器的连接,示例中对于MSSQL Server的缺省配置,应该有1433端口的连接
2)在manager机器上查看/export/logs/world2.syslog该文件为auth机器上的authd的日志输出正常工作时,如果该文件没有变动,说明日志没有传输过来,需要检查cauthd/build/log4j.properties配置文件,auth机器能否解析manager的ip,auth和manager的syslog是否工作正常
3)查看tomcat的输出文件/usr/local/jakarta-tomcat-5.5.9/logs/catalina.out,看是否正常工作,tomcat中工程重要的日志信息会被同时输出到/export/logs/world2.java文件中查看该日志文件是否工作正常
4)访问https://aumanager-ipaddress/monitor页面,测试各项功能是否正常 5)配置logrotate编辑manager:/etc/logrotate.d/syslog文件,可以配置/export/logs/world2.java和/export/logs/world2.syslog文件的滚动建议world2.syslog每日滚动一次,保存1周;world2.java每周滚动一次,保存一年Tomcat的日志文件catalina.out也会变大,建议每周滚动一次保存3周
6)定期检查manager的硬盘空间使用情况
二.游戏服务器配置和管理
1.服务结构图
2.游戏配置,发布和管理
1)游戏配置,在/home/super/update/config目录下配置好相应的xml文件(xml配置文件在c.xml基础上修改即可)后,修改link1机器IP和使用的xml配置文件对应表/home/super/update/config/ip_xml.conf,在发布时,发布程序package可以根据link1机器IP,自动找到本组服务器对应的xml文件
2)游戏发布:
#/home/super/update/cpackage/package -gameinstall
或者指定xml配置文件:
#/home/super/update/cpackage/package ../config/c.xml gameinstall
游戏发布完后,已经启动好
3)游戏启动(同iweb管理页面中的"修复启动"):
#servicerun start
过一会后,即可将servicerun进程杀掉,#killall -9 servicerun
4)游戏关闭:
#servicerun stop
过一会后,即可将servicerun进程杀掉,#killall -9 servicerun
3.检测游戏服务器是否正常工作
1)database机器:ps aux命令检查gamedbd进程是否存在;netstat antp命令检查gamedbd是否在监听29400端口;检查/dbf/目录下是否有dbhome目录或者dbhomewdb目录
2)link机器:ps aux命令检查glinkd进程是否存在;netstat antp命令检查glinkd是否在监听29000端口,检查glinkd与delivery机器和各台game机器是否有连接
3)delivery机器:ps aux命令检查gdeliveryd和gacd进程是否存在;netstat antp命令检查与au是否正常连接(29200)端口,与角色数据库是否正常连接(29400端口),与唯一名服务器是否正常连接(29401端口)如果与au和唯一名服务器未连接(SYN_SENT状态),检查delivery的防火墙(iptables L -nv)以及au,唯一名服务器是否正常启动
4)game机器:ps aux命令检查gs进程是否存在
5)backup机器:如果在该服启动了唯一名服务,则ps aux命令检查uniquenamed进程是否存在,查看/export/目录下是否有uname目录检查数据备份是否正常,backup:/export/backup目录和backup:/export/unamebackup目录,正常情况下,每小时一个备份
6)定期检查manager,database,backup的硬盘空间使用情况
4.数据备份
角色数据库备份在backup:/export/backup目录下,每个备份一个目录,目录名即是备份时间,每小时一个,该备份为全备份,可以定期复制到其他机器做容灾备份唯一名服务的数据备份在backup:/export/unamebackup/目录下,每个备份一个目录,目录名即是备份时间,每小时一个,也是全备份
三.管理页面
1.访问管理页面的人员需要安装个人证书安装,在windows机器上,双击world2_ca.cer安装, 安装时选择安装到 "受信任的根证书颁发机构"里(这个证书可以不安装,如果不安装,每次访问页面会弹出信任确认的对话框)
双击world2_iwebmanage.p12 安装密码: wanmeishikong 安装该证书可以访问
https://gamemanager/iweb/manage 页面和 https://gamemanager/cricket 页面,执行管理和监控
双击world2_iwebrole.p12 安装密码: wanmeishikong 安装该证书可以访问
https://gamemanager/iweb/role 页面,可以修改角色信息等也可以访问https://aumanager/monitor页面,可以简易创建帐号,充值
四.编程接口
1.GMServer提供的 webservice接口说明
接口类UserServiceInterface(url是http://aumanager/GMServer/userservice)和接口类ServiceInterface(url是http://aumanager/GMServer/gmservice),提供的接口详细说明参见文件cGMServer/src/common/interface.xml
(高级功能:如果要增加或者修改接口,可以修改cGMServer/src/common/interface.xml文件,然后运行cGMServer/src/common目录下的gen脚本,生成相应接口类,并完成在cGMServer/src/service目录下的实现类代码)
(高级功能:协议描述文件cGMServer/src/config.xml定义了GMServer和Authd之间通信的协议,主要包括踢用户下线,修改密码,划拨金元宝几个接口接口实现文件在cGMServer/src/protocal目录下)
数据库描述文件/etc/table.xml定义了数据库表,查询,存储过程,以及数据库服务器连接配置
权限和服务器列表/etc/gmopgen.xml配置文件也是GMServer.war来读取的
GMServer项目文件修改后,需在cGMServer/目录下执行ant命令,编译发布到cGMServer/dist目录下,生成GMServer.war文件
2.划拨金元宝接口方案一
玩家充值时,直接调用web service接口useCash注意,每次调用该接口都会直接怎增加玩家的金元宝,不管返回值是多少如果某笔充值调用后没有返回或者返回-1,-2,需要中止全部充值服务,进行检查返回-1和-2是不应该出现的,如果出现,很可能是数据库连接已断开,充值服务需要中止
接口如下所示:
/**
* method useCash
* 划拨金元宝,调用该接口即为帐号划拨金元宝,返回0表示已经划拨完毕,返回其他值表示正在划拨队列中,其中返回-1或-2表示可能有错误,需要人工检查原因每笔划拨该接口不管返回何值,都不需要重复调用,否则会重复划拨
*
* @param username : 用户名
* @param zoneid : 服务器ID
* @param aid : 计费区ID
* @param cash : 划拨的金元宝个数乘以100
* @param loginfo : 调用者信息
*/
public int useCash( String username, Integer zoneid, Integer aid, Integer cash,
LogInfo loginfo);
3.划拨金元宝接口方案二
使用webservice 接口useCashInform该方案过程是,充值时,先调用存储过程将每笔金元宝划拨放入队列中,然后调用useCashInform接口将该笔充值迅速划拨(如果不调用useCashInform,该笔划拨会在5分钟后自动处理)
步骤一:存储过程调用
// 调用存储过程adduserpoint,成功调用后继续执行,否则,中止,划拨失败
adduserpoint userid, aid, cash*90
//调用存储过程 usecash,调用被执行后(不管参数中返回的error代码是多少)则金元宝已在划拨队列中
//该队列每5分钟会被自动处理
//usecash存储过程被执行后,如果参数中返回的error为0时,则调用web service接口useCashInform,参数必须一致
usecash userid, zoneid, 0, aid, cash*90, cash, 1
步骤二:useCashInfrom调用
useCashInform接口如下所示:
/**
* method useCashInform
* 划拨金元宝通知返回结果含义同useCash该接口为useCash接口的备选方案使用useCashInform会使系统更健壮,降低出错概率调用该接口前,需要调用adduserpoint存储过程和usecash存储过程调用完adduserpoint和usecash存储过程之后,金元宝划拨已经放入队列,调用useCashInform只是为了更快的将队列中的该笔信息划拨,每笔划拨useCashInform只能调用一次,调用多次会出现错误
*
* @param userid : 用户ID
* @param zoneid : 服务器ID
* @param aid : 计费区ID
* @param cash : 划拨的金元宝个数乘以100
* @param loginfo : 调用者信息
*/
public int useCashInform( Integer userid, Integer zoneid, Integer aid, Integer cash,
LogInfo loginfo);
4.Iweb webservice接口
iweb webservice接口是游戏服务器对外提供的控制游戏和设定参数的编程接口,接口在类ciweb/src/com/goldhuman/service/interfaces/GMServi ce.java中定义)
Iweb项目文件修改后,需在ciweb/目录下执行ant命令,编译发布到ciweb/dist目录下,生成iweb.war文件
Money=1000]
完美世界服务端详细架设方法(中文版)
-------------------------------------------------- --------------------
首先架设环境
1、找到服务端PWcnet.feilvbin目录下的bash_profile文件,将他改名为.bash_profile复制到LINUX下/root目录下替换原来的文件
2、打开LINUX下/etc/hosts文件,把里面内容删除,修改为:
127.0.0.1 localhost.localdomain localhost manager link1 game1 delivery database backup
127.0.0.1 aumanager
127.0.0.1 manager
127.0.0.1 auth
127.0.0.1 audb
3、打开服务端PWbaxi-au目录下的authd.conf文件修改为(只需要修改我括号注名的地方,修改完把我的括号内容删除掉):
[GAuthServer]
type = tcp
port = 29200
address = 0.0.0.0
so_sndbuf = 131072
so_rcvbuf = 131072
ibuffermax = 819200
obuffermax = 819200
tcp_nodelay = 1
listen_backlog = 10
mtrace = /tmp/mtrace.authd
isec = 2
iseckey = baxiykbpn3fxLqpsdpiodI4iazqjdl(注意这是秘匙,自己更改,不要忘记把游戏服务端里也修改了,不会修改的全部修改为123456)
osec = 2
oseckey = baxixD0awqydOtrxjxr8uhzaslmnqh(注意这是秘匙,自己更改,不要忘记把游戏服务端里也修改了,不会修改的全部修改为123456)
shared_key = baxiIvunkjfjlj0Ckgxzzdfpess5vw(注意这是秘匙,自己更改,不要忘记把游戏服务端里也修改了,不会修改的全部修改为123456)
[ThreadPool]
config = (1,1)(2,10)(3,1)
max_queuesize = 1048576
修改好后把这个文件复制到LINUX下的/etc/目录下.
4、打开服务端PWbaxi-au目录下GMServer.conf文件修改为:
[AuthClient]
type = tcp
port = 29200
address = 192.168.0.1(修改为你的LINUXIP)
so_sndbuf = 131072
so_rcvbuf = 131072
so_broadcast = 1
tcp_nodelay = 0
accumulate = 268435456
isec = 2
iseckey = baxixD0awqydOtrxjxr8uhzaslmnqh(注意这是秘匙,自己更改,不要忘记把游戏服务端里也修改了,不会修改的全部修改为123456)
osec = 2
oseckey = baxiykbpn3fxLqpsdpiodI4iazqjdl(注意这是秘匙,自己更改,不要忘记把游戏服务端里也修改了,不会修改的全部修改为123456)
shared_key = baxiIvunkjfjlj0Ckgxzzdfpess5vw(注意这是秘匙,自己更改,不要忘记把游戏服务端里也修改了,不会修改的全部修改为123456)
[ThreadPool]
config = (1, 2)
修改好后把这个文件复制到LINUX下的/etc/目录下
5、打开服务端PWbaxi-au目录下table.xml文件找到如下内容后修改:
汉字的地方根据自己实际情况填写,改完后把文件复制到LINUX下的/etc/目录下
6、打开服务端PWbaxi-au目录下table.xml文件找到如下内容后修改:
汉字的地方根据自己实际情况填写,改完后把文件复制到LINUX下的/etc/目录下
7.帐号数据库的创建
创建帐号数据库,根据mssql_table.sql和mssql_storeprocedure.sql示例文件创建数据库表和存储过程
8、将服务端PWcnet.feilvbin目录下的SSL文件夹拷贝到LINUX的/etc/目录下
9、将服务端PWcnet.feilvbin目录下的cauthd文件夹拷贝到LINUX的/root/目录下
10、将服务端PWcnet.feilvbin目录下的java文件夹拷贝到LINUX的/usr/目录下
11、将服务端PWcnet.feilvbin目录下的jakarta-tomcat-5.5.9文件架拷贝到LINUX的/usr/local/目录下
OK环境配置完毕,开始游戏服务端的安装和配置
-------------------------------------------------- --------------------
游戏服务器架设方法:(最好采用桌面方式,操作方法同WINDOWS系统一样)
一、在LINUX的/root/目录下新建一个文件夹起名为pwserver
二、拷贝你下载的服务端里PWcnet.feilvbinconfigfeilvbincpackage.feilvbin srcfiles目录下的gacd、gamed、gamedbd、gdeliveryd、gfactiond、glinkd、loader、logservice文件夹到你新建在LINUX下的pwserver目录下
三、修改你拷贝的这些文件里的配置文件
1、gacd目录就不用修改了
2、修改gamed目录下的配置文件
gs.conf文件修改
找到第23行修改为:root=/root/pwserver/gamed/config
gameserver.conf文件修改
找到第13、27、40、53、66、79、92、105、118、131、143、154、164行修改这些行的IP地址为127.0.0.1(假如你已经给自己的LINUX设定了IP比如是192.168.1.5那也可以设定为这个IP)
gsalias.conf文件修改
找到第10行修改为root=/root/pwserver/gamed/config(其实就是修改成你改动后的目录,假如你把游戏服务器拷贝到其他目录了,做相应修改这些配置文件里的目录地址就可以了)
ptemplate.conf这个文件不用修改
3、修改gamedbd目录下的配置文件
cashstat.conf文件修改
找到第4行修改IP地址为127.0.0.1或者是自己的LIUNX的IP
gamesys.conf文件修改
找到6、18、18行修改IP地址为127.0.0.1或你的LINUX的IP
找到36行修改目录地址为/root/pwserver/gamedbd/dbhome
找到37行修改目录地址为/root/pwserver/gamedbd/dbdata
找到38行修改目录地址为/root/pwserver/gamedbd/dblogs
找到39行修改目录地址为/root/pwserver/gamedbd/backup
找到48行修改目录地址为/root/pwserver/gamedbd/dbhomewdb
找到49行修改目录地址为/root/pwserver/gamedbd/dbdata
找到50行修改目录地址为/root/pwserver/gamedbd/dblogs
找到51行修改目录地址为/root/pwserver/gamedbd/backup
4、修改gdeliveryd目录下的配置文件
gamesys.conf文件修改
找到4、14、101、113、125行修改IP地址为127.0.0.1或者你的LINUX的IP
5、修改gfactiond目录下的配置文件
gamesys.conf文件修改
找到4、14、78行修改IP地址为127.0.0.1或者你的LINUX的IP
6、修改glinkd目录下的配置文件
gamesys.conf文件修改
找到4、25、46、67、88、143、154、164行修改IP地址为127.0.0.1或者你的LINUX的IP
7、修改uniquenamed目录下的配置文件
gamesys.conf文件修改
找到20、30行修改IP地址为127.0.0.1或者你的LINUX的IP
找到38行修改目录地址为/root/pwserver/uniquenamed
找到39行修改目录地址为/root/pwserver/uniquenamed/dbdata
找到40行修改目录地址为/root/pwserver/uniquenamed/dblogs
找到41行修改目录地址为/root/pwserver/uniquenamed/backup
找到50行修改目录地址为/root/pwserver/uniquenamed/dbdata
找到51行修改目录地址为/root/pwserver/uniquenamed/dblogs
找到52行修改目录地址为/root/pwserver/uniquenamed/backup
到这里游戏服务器就基本修改完毕了,自己检查还有什么地方不对自己做相应调整
-------------------------------------------------- --------------------
现在开始启动游戏
运行/usr/local/jakarta-tomcat-5.5.9/bin/startup.sh启动tomcat,这是网页的服务器启动后你可以输入https://LINUX的IP/monitor 来打开管理页面运行/root/cauthd/build/authd 启动AU服务器
运行/root/pwserver/gamedbd/gamedbd gamesys.conf 启动游戏数据服务器
运行/root/pwserver/gdeliveryd/gdeliveryd gamesys.conf 启动帐号验证服务器
运行/root/pwserver/gfactiond/gfactiond gamesys.conf
运行/root/pwserver/gacd/gacd gamesys.conf
运行/root/pwserver/glinkd/glinkd gamesys.conf 1 登陆服务器
运行/root/pwserver/uniquenamed/uniquenamed gamesys.conf
运行/root/pwserver/gamed/gs gs01 >gs01.log 启动游戏服务器
运行/root/pwserver/gamed/gs arena01 FB服务器
g运行/root/pwserver/gamed/gs arena02 FB服务器
运行/root/pwserver/gamed/gs arena03 FB服务器
运行/root/pwserver/gamed/gs arena04 FB服务器
运行/root/pwserver/gamed/gs is01 FB服务器
运行/root/pwserver/gamed/gs is02 FB服务器
OK全部启动完美进游戏吧