Configuring Ryzom API
Configuring the Ryzom API
You will need to configure the Ryzom API before you configure the Ryzom App, as the App is dependent upon the API.
Configuring the Web Server
First you will need to create a new virtual host for the web server. It is important to note that the Ryzom API and App make the assumption that you will have a fully qualified sub-domain associated with each of them. It is not tested on a local installation at this point.
First create your new vitrual host configuration in Apache.
######################
# Ryzom API Site #
######################
<VirtualHost *:80>
<Directory "/home/username/ryzom/code/web/">
Options -Indexes FollowSymLinks MultiViews
IndexOptions FancyIndexing FoldersFirst NameWidth=*
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerAdmin admin@localhost
DocumentRoot /home/username/ryzom/code/web/api
ServerName api.domain.org
</VirtualHost>
Configuring the API
Next you will need to copy the default configuration files for use:
cd $RYZOM_PATH/../web/api cp ./server/config.php.default ./server/config.php cp ./client/config.php.default ./client/config.php cp ./common/config.php.default ./common/config.php
Modify the Server Config
You will need to modify the following variables in the server/config.php file:
- RYAPI_SHARDID - this should be set to your shard ID - the default is 301.
- RYAPI_NELDB_PASS - set this to blank if you're using the default shard privilege script.
- RYZOM_WEBDB_LOGIN - set this to webdb or if you're an advanced user set it to a user of your choice.
- RYZOM_WEBDB_PASS - set this to blank or if you're an advanced user set it to a password of your choice.
You will need to modify the following code in the common/config.php file so that the URL matches where your API and App will be hosted:
# Make sure you change this from client to server define('RYAPI_MODE', 'server'); // Url where the api is define('RYAPI_URL', 'http://api.domain.org/'); /* ... skip some code ... */ // used by "home" link if (!defined('RYAPP_URL')) define('RYAPP_URL', 'http://app.domain.org/');
We still need documentation regarding:
- RYAPI_COOKIE_KEY
- RYAPI_EGS_SALT
Configuring the Ryzom App
Configuring the Web Server
First you will need to create a new virtual host for the web server. It is important to note that the Ryzom API and App make the assumption that you will have a fully qualified sub-domain associated with each of them. It is not tested on a local installation at this point.
First create your new vitrual host configuration in Apache.
######################
# Ryzom App Site #
######################
<VirtualHost *:80>
<Directory "/home/username/ryzom/code/web/">
Options -Indexes FollowSymLinks MultiViews
IndexOptions FancyIndexing FoldersFirst NameWidth=*
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerAdmin admin@localhost
DocumentRoot /home/username/ryzom/code/web/app
# The client hard codes /start/ into the WebIG launch URL.
Alias /start/ /home/username/ryzom/code/web/app/
ServerName app.domain.org
</VirtualHost>
Configuring the App
Next you will need to copy the default configuration file for use:
cd $RYZOM_PATH/../web/app cp ./config.php.default ./config.php
Once copied you will want to edit it and define the RYAPP_URL variable.
define('RYAPP_URL', 'http://app.domain.org/');
Build the Database
You will need to execute two scripts to build the basic API database and the test application database.
mysql -u root -p < $RYZOM_PATH/../web/create_webig.sql mysql -u root -p < $RYZOM_PATH/../web/app/app_test/create.sql
Next execute the following to grant the webdb user access, using the values you set earlier in the setup. First open MySQL up and then execute the following:
GRANT ALL ON webig.* TO webdb@localhost; GRANT ALL ON app_test.* TO webdb@localhost;
Client Configuration
For the client you will need to add or change the following configuration variables:
WebIgMainDomain = "app.domain.org";
// The list of domains the client will trust and execute Lua scripts from.
WebIgTrustedDomains = { "app.domain.org", "api.domain.org", "shard.domain.org" };
Troubleshooting
Table players not found
Problem: If you receive the following error:
PHP Notice: Use of undefined constant RYAPI_WEBDB_PASS - assumed 'RYAPI_WEBDB_PASS' in /home/username/ryzomcore/web/api/common/db_lib.php on line 136
Solution: You need to ensure that the RYAPI_MODE is set to server. The client mode is intended for remote third-party API use.
Broken images at login screen
Problem: When you go to the login screen you see the input boxes with a black background but no images.
Solution: In your api/common/config.php and your app/config.php ensure that the URL fields have a trailing slash, e.g. http://api.domain.org/