« Previous - Version 38/82 (diff) - Next » - Current version
kerozcak, 05/18/2010 11:09 am
Added creating MySQL user instructions


Building, Configuring and Running the Ryzom Core for Windows(x86)

This guide is intended to give a step by step process for setting up and running the Ryzom Core for those that may not be as technically gifted as others, This is being written assuming that the reader isn't familiar with the tools and software used here.

Verified working on

Windows 7 x64 Ultimate

The following is a list of everything you will need to download.

TortoiseHg - http://tortoisehg.bitbucket.org/download/index.html
DirectX SDK (February 2010) - http://www.microsoft.com/downloads/details.aspx?FamilyID=2c7da5fb-ffbb-4af6-8c66-651cbd28ca15&displaylang=en
External_stlport - http://dev.ryzom.com/attachments/download/593/external_stlport_lua51.7z
Qt - http://qt.nokia.com/downloads/windows-cpp-vs2008
XAMPP - http://www.apachefriends.org/download.php?xampplite-win32-1.7.3.exe
Apache - http://apache.mirrors.hoobly.com/httpd/binaries/win32/httpd-2.2.15-win32-x86-no_ssl.msi
MySQL - http://www.mysql.com/downloads/mysql/
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
PHP - http://windows.php.net/downloads/releases/php-5.3.2-Win32-VC6-x86.zip

1. Getting the source code

Download and install TortoiseHg - http://tortoisehg.bitbucket.org/download/index.html

Create a folder on your computer and name it whatever you want (choose something easy to remember and easy to get to because you will be referring to this a lot).

Example: x:/ryzom

Navigate to this directory and right click on the folder that you just made.

Highlight TortoiseHg in the menu and select Clone from the list that appears to the side.

In the TortoiseHg Clone window, in the Source path: box put in
http://ryzom.hg.sourceforge.net:8000/hgroot/ryzom/ryzom

For destination path, you want the path to the folder you just right clicked on, which it should default to.

Leave everything else the default (unchecked) and hit Clone at the bottom.

2a. Configuring Visual C++ 2008

First install the DirectX SDK (February 2010)- http://www.microsoft.com/downloads/details.aspx?FamilyID=2c7da5fb-ffbb-4af6-8c66-651cbd28ca15&displaylang=en
Second install Visual C++ 2008 (90 Day Trial) - http://download.microsoft.com/download/8/1/d/81d3f35e-fa03-485b-953b-ff952e402520/VS2008ProEdition90dayTrialENUX1435622.iso
Third install Visual C++ 2008 SP1 - http://www.microsoft.com/downloads/thankyou.aspx?familyId=27673c47-b3b5-4c67-bd99-84e525b5ce61&displayLang=en

The first time installing Visual C++ 2008 can take a while.

Now create a new folder. This can go wherever you want and can be called anything you want, Example x:/external (Replace "x" with your drive letter).

Download this file
http://dev.ryzom.com/attachments/download/593/external_stlport_lua51.7z

Extract the contents to the folder you just created. This comes with both x86 and x64 folders, you only need "bin", "include", and "lib" for the x86 build.

Copy code\tool\visual_studio_macros\autoexp.dat into the following directory:
C:\Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger


Download and install this file
http://qt.nokia.com/downloads/windows-cpp-vs2008

On your desktop or in your start menu, right click on My Computer and go to Properties. On the left side go to Advanced System Settings and in that window click on Environment Variables… at the bottom.



Under the second box labeled System variables click the New… button. In the box that pops up type in QTLIB for the variable name and put in the directory where Qt installed and \lib after that. So it should look something like C:\QT\4.6.2\lib in the Variable value: field.


Note: You will need to restart your computer at this point.

2b. Configuring Visual C++ 2008

Now navigate to the directory we created at the beginning where all the source code is.

Go into code\nel\ and double click on nel.sln. This should open up the project in Visual V++ 2008.

Once that opens, go to the Tools drop down menu at the top and select Options at the bottom. On the left side of that window, expand Projects and Solutions and then select VC++ Directories.

On the right side where it says Show directories for: click on the drop down list there and select Include files. Below that click on the icon that looks like a yellow folder (when you hover over it, it says New Line. A new line pops up at the top of the list down below. You want to hit the button to the right of that whitespace. Browse to the include directory where the DirectX SDK installed. By default, it installs to C:\Program Files\Microsoft DirectX SDK (February 2010)\Include.

Now you want to add a few more lines with the following directories:
(Note: Your drive letters and folder names may be different than shown here.)
x:\external\include\stlport
x:\external\include
x:\external\bin
x:\ryzom\code\nel\src
x:\ryzom\code\nel\include

Now go back to the drop down box under Show directories for: and select Library files.

Add the following lines:
(Once again your drive letters and the name of your directories may be different than shown here.)
C:\Program Files\Microsoft DirectX SDK (February 2010)\Lib\x86
x:\external\lib
x:\ryzom\code\nel\lib

This finishes this part. Go ahead and hit OK at the bottom.

3. Compiling NeL, Client/Server, and Tools.

If you don’t already have nel.sln open, navigate to code\nel\ directory in the source code we downloaded earlier and open it.

Along the top of your Visual C++ 2008 window below the Help drop down menu click on the arrow next to where it says Debug and select Release.

Now hit F7 and wait. You are now compiling, and this could take awhile…

When that’s done, hopefully you will get a message along the bottom saying that everything was successful.

Now let’s move on to the Client/Server.

Navigate to the directory you have the source code and go to code\ryzom\server. Double click on server.sln. Make sure to change Debug to Release like we did before in this project and then press F7 once again to compile. This will take even longer than when you compiled NeL.

When that’s done, go ahead and exit out and navigate once again to your source code directory and browse to code\ryzom\tools. Double click on all.sln. Once again change Debug to Release and hit F7. Once again wait and it should all compile successfully.

4. Setting up Apache/MySQL/PHP

To make things less complicated, we're going to use a piece of software called XAMPP Lite that comes pre-configured with Apache, MySQL, and PHP with phpMyAdmin that gives you a web interface to your MySQL server.

Download and install this:
http://www.apachefriends.org/download.php?xampplite-win32-1.7.3.exe

After it's installed I want you to run XAMPP Lite. With the control panel open you want to click on the Explore button on the right side. This should open up the XAMPP directory. Navigate to:
xampplite -> apache -> conf -> extra

Open the file called httpd-vhosts.conf with your favorite text editor. At the very bottom of that document I want you to copy and paste these lines into it:
Note: The drive letter and directory may be different than mine so you may need to change the directory and documentroot lines to match what you have.

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
</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
</Directory>
ServerAdmin admin@localhost
DocumentRoot "x:/source/code/ryzom/tools/server/admin"
ServerName localhost
</VirtualHost>

NOTE:
You will probably need to add these lines:

AddType text/html .php .phps
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps    

to the <directory></directory> section of each virtual host so that apache will know to execute your .php files instead of just display them as text.
The final changes to your httpd-vhosts.conf file should look something like this:
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>

Save that file and you are done configuring Apache. Now I want you to open up the XAMPP Control Panel again (there should be an icon for it down by your clock).

This time click on the Start button to the right of where it says Apache.

When that is done hit the Start button next to MySQL. Now you should be able to click on the Admin button next to that Start button you just clicked on for MySQL. A web browser should open up taking you to your phpMyAdmin website.

On that main screen in phpMyAdmin underneath where it says MySQL localhost you should see something that says Create new database. In the box below that type in nel and hit the Create button over to the right. Now go to the top of the screen and click on Server: localhost and it will take you back to the main screen. In the Create new database field put in nel_tool. Once again go back to the main screen and this time create ring_open.

Next, you will need to create a user for your new databases and grant that user privileges on all tables for each database: nel, nel_tool, and ring_open.

mysql -uroot -p

CREATE DATABASE nel;
CREATE DATABASE nel_tool;
CREATE DATABASE ring_open;
GRANT ALL ON nel.* TO shard@localhost;
GRANT ALL ON nel_tool.* TO shard@localhost;
GRANT ALL ON ring_open.* TO shard@localhost;
  • Remove STRICT_TRANS_TABLES from sql_mode in your MySQL configuration. You can check if you have it by doing
SHOW VARIABLES WHERE Variable_name='sql_mode';

NOTE:
The configuration files in code/ryzom/server expect your user to be named 'shard' with NO PASSWORD. If you decide to use a different name for your MySQL user, or assign it a password, you will need to go through the .cfg files and change these values from 'shard' and "" wherever they appear. (they appear in several of the .cfg files)

Minimize your browser now and navigate to your source code folder and go to code/ryzom/tools/server/sql.
  • Open up ryzom_admin_default_data.sql in a text editor. Do a search for /home/nevrax/code/ryzom/server/save_shard/rrd_graphs and change that so it matches your source code directory. I changed mine to: x:/source/code/ryzom/server/save_shard/rrd_graphs. Save and close out of that file.
  • Open up ryzom_default_data.sql in a text editor. Change all occurences of open.ryzom.com in code/ryzom/tools/server/sql/ryzom_default_data.sql to your address (e.g. 192.168.0.1), but remember to keep ports (:4999 etc) as is.

Now go to your source code directory and navigate to code/ryzom/server/save_shard and create a new folder in there and call it rrd_graphs.

Copy the code/ryzom/tools/server/admin/templates/default folder and rename the copy to code/ryzom/tools/server/admin/templates/default_c

Open back up your browser that you minimized earlier that is open to phpMyAdmin. On the left pane click on where it says nel click on that. Along the top now you will see a bunch of tabs. You want to click on the Import tab. Under File to import click on the Choose File button. In the window that pops up browse to your source code directory and to code/ryzom/tools/server/sql and select the one called ryzom_tables.sql and hit Open at the bottom. Now at the bottom right of that screen hit the Go button and it will import the file. Now go back to the Import tab once again under the nel database and do the same process but this time import ryzom_default_data.sql which is in the same directory. Now go to the nel_tool database and Import the file called ryzom_admin_default_data.sql.

Once you have imported these files, you need to make a change to some of the data in your new databases. The best way to do this (since we are using phpMyAdmin) is to navigate to the nel_tool database, then to the neltool_domains table, find the record with a domain_id of "12" then edit that row by clicking on the little pencil icon to the left, and change the domain_as_host field to "YOUR ADDRESS".
(if you prefer, you can just enter the SQL directly on the SQL tab of the neltool_domains table.
Here is the SQL query you will need:

UPDATE neltool_domains SET domain_as_host='YOUR_ADDRESS' where domain_id=12;
)

Once you have the databases set up, you need to make a minor change to one of the .cfg files in code/ryzom/server:
  • Open code/ryzom/server/frontend_service.cfg in a text editor and do a search for FSListenHost. Change FSListenHost to = the address your server is running on (e.g. 192.168.0.1).

At this point, you should be able to start the server using the shard_start.bat file in the code/ryzom/server directory.

Several console windows will open up. Give everything a few minutes to start, then you should be able to start your client and connect to your new server using the instructions found here: RunClientOnWindows

To be continued...

1.jpg (85 kB) zasdman, 05/18/2010 10:20 pm

clone.jpg (82.9 kB) zasdman, 05/18/2010 10:25 pm

properties.jpg (113.9 kB) zasdman, 05/18/2010 10:26 pm

systemsettings.jpg (83.7 kB) zasdman, 05/18/2010 10:26 pm

evironment.jpg (86.2 kB) zasdman, 05/18/2010 10:26 pm

qtlib.jpg (84.9 kB) zasdman, 05/18/2010 10:26 pm

tortoisehg_clone.jpg (82.1 kB) zasdman, 05/18/2010 10:26 pm

external.jpg (65.9 kB) zasdman, 05/18/2010 10:26 pm

stlport.jpg (118.6 kB) zasdman, 05/18/2010 10:26 pm

qtlib2.jpg (87.2 kB) zasdman, 05/18/2010 10:26 pm

autoexp.jpg (106.1 kB) zasdman, 05/18/2010 10:26 pm

autoexp2.jpg (103.5 kB) zasdman, 05/18/2010 10:26 pm

nel_sln.jpg (108.6 kB) zasdman, 05/18/2010 10:42 pm

tools_options.jpg (60.7 kB) zasdman, 05/18/2010 10:52 pm

vc__.jpg (88.1 kB) zasdman, 05/18/2010 10:56 pm

include.jpg (82.3 kB) zasdman, 05/18/2010 11:03 pm

lib.jpg (73.3 kB) zasdman, 05/18/2010 11:03 pm