在Windows(x86)上編譯、配置並運行Ryzom Core(伺服器/用戶端)

來源:互聯網
上載者:User

Windowsx86)上編譯、配置並運行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 SolutionsVC++ 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鍵退出配置頁面。

編譯NelNel ToolsClient/ServerRyzom 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看能不能解決問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.