在Windows(x86)上编译、配置并运行Ryzom Core(服务器/客户端)
在Windows(x86)上编译、配置并运行Ryzom Core
英文链接:http://dev.ryzom.com/wiki/7/EverythingWindows
本教程在以下平台上经过验证
Windows 7 x64 Ultimate
Windows Vista x64 Home Premium SP2
Windows XP SP3
你需要下载并安装的软件列表
XPeng注:Qt是工具编译需要的,Apache和MySQL其实可以不必单独下载安装,按照教程要求下载XAMPP安装即可,对于国内的情况VS 2008 SP1一般是没有问题的,直接一步到位就可以了。
获取Ryzom源代码
下载并安装TortoiseHg- http://tortoisehg.bitbucket.org/download/index.html
创建一个代码根目录(本教程中我们使用 x:/ryzom
来举例)。
进入你刚才创建的目录,右键菜单中选择TortoiseHg,然后选择Clone(克隆)。
在TortoiseHg Clone窗口中的Sourece path编辑框里填写:http://ryzom.hg.sourceforge.net:8000/hgroot/ryzom/ryzom,注意Destination Path编辑框里现在默认是你右键点击的路径,保持所有选项默认的情况下点击底部的Clone按钮。
配置Visual C++ 2008
- 首先安装DirectX SDK (February 2010)- http://www.microsoft.com/downloads/details.aspx?FamilyID=2c7da5fb-ffbb-4af6-8c66-651cbd28ca15&displaylang=en
- 然后安装Visual C++ 2008 (90 Day Trial) - http://download.microsoft.com/download/8/1/d/81d3f35e-fa03-485b-953b-ff952e402520/VS2008ProEdition90dayTrialENUX1435622.iso
- 再安装 Visual C++ 2008 SP1 - http://www.microsoft.com/downloads/thankyou.aspx?familyId=27673c47-b3b5-4c67-bd99-84e525b5ce61&displayLang=en
现在,你创建一个新的文件夹,取名为x:/external(X是你的盘符)
下载这个文件:https://sourceforge.net/projects/ryzom/files/external_stlport_lua51.7z/download,论坛上提供的FTP中也有这个文件。
将它的内容解压到刚才你创建的external目录,里面包含了x86和x64的支持,对x86的编译你仅需要“bin”,“include”和“lib”目录就行了。
把文件code\tool\visual_studio_macros\autoexp.dat拷贝到目录C:\Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger中。
下载并安装Qt的SDK:http://qt.nokia.com/downloads/windows-cpp-vs2008
在桌面上打开开始菜单,右击我的电脑并打开属性页。在系统设置的高级选项中设置环境变量(Windows XP上的设置界面可能不一样):
新建一个叫QTLIB的环境变量指向你Qt安装路径下的\lib目录,例如C:\QT\4.6.2\lib
注意:你可能需要重启你的计算机来让这些配置生效。
配置编译项目
现在,进入代码路径中的code\nel\目录,双击nel.sln。将在Visual C++中打开这个项目。
在VS的Options菜单项中,设置Projects and Solutions和VC++ Directories。
设置如下的包含路径(注意你的盘符和路径可能不一样哈):
x:\external\include\stlport
x:\external\include
x:\external\bin
x:\ryzom\code\nel\src
x:\ryzom\code\nel\include
现在再设置Library路径:
C:\Program Files\Microsoft DirectX SDK (February 2010)\Lib\x86
x:\external\lib
x:\ryzom\code\nel\lib
*注意“\code\nel\lib”目录只有在你编译完Nel后才会出现,这个库目录虽然对Nel的编译没有什么作用,但它是编译Ryzom客户端必须的。
结束后按OK键退出配置页面。
编译Nel,Nel Tools,Client/Server和Ryzom Tools
打开nel.sln,按照Release版本编译(你可以按F7键开始)。
如果你对世界编辑器感兴趣,你可以编译Nel Tools。在code\net\tools目录,双击all.sln,然后和上面一样按Release编译整个项目。
现在我们来编译客户端和服务器:
在code\ryzom\server目录中,以Release版本编译server.sln,这将是一个很长的过程。
在code\ryzom\client目录中,以Release版本编译client.sln
在code\ryzom\tools目录中,以Release版本编译all.sln
注意,在当前代码库的情况下,Ryzom tools有一些项目编译不过,这是正常的,可以不管他,当然这方面详细信息可以参考http://dev.ryzom.com/boards/17/topics/2666,里面解决了一些问题。
设置Apache/PHP
为了简化操作,我们使用一个叫XAMPP Lite的软件包,它内置了Apache,MySQL,PHP和phpMyAdmin,使得你可以方便的配置MySQL服务器。
下载并安装它:http://www.apachefriends.org/download.php?xampplite-win32-1.7.3.exe
默认安装完毕后,进入到目录xampplite\apache\conf\extra中(注意在vista或者win7中需要以管理员模式来操作),在文本编辑器中打开httpd-vhosts.conf,在结尾处增加如下文本:
Listen 40916
<VirtualHost *:40916>
<Directory "x:/source/code/ryzom/tools/server/">
Options -Indexes FollowSymLinks MultiViews
IndexOptions FancyIndexing FoldersFirst NameWidth=*
AllowOverride All
Order allow,deny
Allow from all
AddType text/html .php .phps
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
</Directory>
ServerAdmin admin@localhost
DocumentRoot "x:/source/code/ryzom/tools/server/www"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
<Directory "x:/source/code/ryzom/tools/server/">
Options -Indexes FollowSymLinks MultiViews
IndexOptions FancyIndexing FoldersFirst NameWidth=*
AllowOverride All
Order allow,deny
Allow from all
AddType text/html .php .phps
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
</Directory>
ServerAdmin admin@localhost
DocumentRoot "x:/source/code/ryzom/tools/server/admin"
ServerName localhost
</VirtualHost>
注意里面的路径应该改为你自己的适当路径。
保存这个文件然后启动XAMPP控制面板,点击Apache旁边的Start按钮。
接着,在x:/source/code/ryzom/tools/server/admin/config.php文件中把NELTOOL_SITEBASE设置为你的服务器地址,把NELTOOL_SYSTEMBASE设置为你的对应路径。
创建一个目录:x:/source/code/ryzom/server/save_shard/rrd_graphs/。
在x:/source/code/ryzom/tools/server/www/login/config.php文件中把$LogRelativePath项的值改为’logs/’,即:
$LogRelativePath = 'logs/';
接着创建目录:x:/source/code/ryzom/tools/server/www/login/logs/
设置MySQL
再次打开XAMPP控制面板,点击MySQL旁的Start按钮启动它。现在,你可以点击旁边的Admin按钮来启动浏览器进入phpMyAdmin站点。
在phpMyAdmin站点的主页面上部应该有显示MySQL localhost,在中间一个Create new database的地方填入nel然后点击Create按钮。再次点击Server:localhost回到主页面,用同样的方法创建nel_tool,再创建ring_open库。
接下来,你需要创建对这些库的用户和用户权限。注意,code/ryzom/server目录下的配置文件中均使用“shard”作为默认的用户名,默认是没有密码的,如果你要在MySQL中配置其他的用户,请在这些.cfg文件中作相应的修改。
使用phpMyAdmin配置的步骤如下:
- 在页面顶部,点击Server: localhost进入主页面
- 在localhost下面,找到Privilges并点击它,然后你会看到一个显示用户帐号的表格
- 在顶部的Tab列中点击SQL
- 现在你看到一个大的编辑框,标题是Run SQL query/queries on server "localhost": @. 输入如下的文本:
GRANT ALL ON nel.* TO shard@localhost;
GRANT ALL ON nel_tool.* TO shard@localhost;
GRANT ALL ON ring_open.* TO shard@localhost;
- 点击右边底部的Go按钮
- 现在你在主页面能看到信息"Your SQL query has been executed successfully..."
- 找到名叫Reload Privileges
的链接然后点击它 - 现在你会再次回到主页并且有信息: "The privileges were reloaded successfully..."
到此为止你在Ryzom数据库中的用户和权限就建立完毕了。注意你也可以直接使用MySQL的命令行达到这个目的,这个在英文链接上有写,自己去看吧。
关于MySQL中全局变量sql_mode的问题
如果sql_mode中包含STRICT_TRANS_TABLES值,则你必须去掉它。
打开MySQL下面的my.ini文件(一般在XAMPP\xampplite\mysql\bin下),找到“sql-mode=”这行(如果没有就在[mysqld]下增加一项),改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"就行了。
重启MySQL服务器
导入数据库默认数据
到code/ryzom/tools/server/sql目录下,做如下事情:
- 打开ryzom_admin_default_data.sql文件(我使用的是UE),找到/home/nevrax/code/ryzom/server/save_shard/rrd_graphs并改为你自己的代码路径,例如x:/source/code/ryzom/server/save_shard/rrd_graphs,保存文件。
- 打开ryzom_default_data.sql文件,把所有open.ryzom.com改为你自己机器的地址(例如192.168.0.1或者127.0.0.1),但是注意保持好那些端口号不要变 (比如:4999 等等)。
现在复制拷贝code/ryzom/tools/server/admin/templates/default文件为code/ryzom/tools/server/admin/templates/default_c。
接下来再次进入phpMyAdmin页面,做如下事情:
- 在左边面板上点击nel
- 在顶端的Tab页上点击Import
- 在File to import旁点击Choose File(浏览)按钮。浏览到代码路径code/ryzom/tools/server/sql然后选择文件ryzom_tables.sql后打开
- 现在点击Go按钮将导入这个文件
- 现在回到nel数据库下的Import页,再次导入ryzom_default_data.sql文件
- 回到nel_tool数据库下导入ryzom_admin_default_data.sql文件
导入数据库文件之后你还要修改一些内容,使用phpMyAdmin按下面的步骤做:
- 进入nel_tool数据库页面上,选择neltool_domains表,找到一个domain_id为12的记录
- 然后点击笔形图标编辑这个记录,把domain_as_host
域的值设置为你的服务器地址
编辑配置文件
一旦数据库建立起来,你还需要小小修改一下code/ryzom/server目录中的.cfg文件:
- 用文本编辑器打开文件code/ryzom/server/frontend_service.cfg然后找到 FSListenHost项(没有就添加这项)
- 将FSListenHost设置为等于你的服务器地址(如192.168.0.1或者127.0.0.1)
启动Ryzom服务器
到此为止,你应该能够启动Ryzom服务器了,执行code/ryzom/server目录下的shard_start.bat文件。
多个控制台会出现,过一段时间等所有服务器都启动好了以后,你就可以启动你的客户端来链接你自建的服务器了。
客户端运行请参考:http://ryzomcn.5d6d.com/thread-20-1-1.html
客户端登录问题
如果客户端连接服务器时报错,参考http://dev.ryzom.com/wiki/ryzom/ClientConnectErrors看能不能解决问题。