在Windows(x86)上編譯、配置並運行Ryzom Core
英文連結:http://dev.ryzom.com/wiki/7/EverythingWindows
本教程在以下平台上經過驗證
Windows 7 x64 Ultimate
Windows Vista x64 Home Premium SP2
Windows XP SP3
你需要下載並安裝的軟體列表
- TortoiseHg
- DirectX SDK
- External_stlport
- Qt
- XAMPP
- Apache
- MySQL
- Visual C++ 2008
- Visual C++ 2008 SP1
- PHP
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看能不能解決問題。