Configuring and running Ryzom Core server Web Services on GNU/Linux
Table of Contents |
---|
Preparing Packages
For Debian/Ubuntu users you will need to install the following packages:
Panel |
---|
sudo apt-get install apache2 php5 php5-mysql php5-gd rrdtool screen |
Making changes in services config files
- Change FSListenHost in
code/ryzom/server/frontend_service.cfg
to your address (e.g. 192.168.0.1). If you set up server on different machine, remember it has to be address that's reachable on client host.
Tip |
---|
If your frontend service is available through a firewall using NAT and a mapped IP address this is how you can advertise that external IP address. For example if your FS is on 192.168.1.100 internally but your firewall maps 74.125.225.210 through to your FS you would want to configure FSListenHost to be the address the clients connect to: 74.125.225.210. |
Configuring Apache and web tools
- Ubuntu user: Don't forget to install php5-mysql synaptic packet and to uncomment "extension=mysql.so" into "php.ini" file to allow mysql connection from php code.
- Configure Apache with PHP. Make a VirtualHost (usually in
/etc/apache2/httpd.conf
) for the login scripts and admin app (replace DocumentRoot with your own path).
Note |
---|
For current Ubuntu versions you can just edit the file default in /etc/apache2/sites-available/ - substituting what is listed below for what is already there. It may be helpful to break this into multiple site configuration files but isn't necesasry. |
Warning |
---|
Don't forget to change the paths used below to match where your source is checked out! |
Panel | ||||
---|---|---|---|---|
| ||||
Listen 40916
<VirtualHost *:40916>
<Directory "/home/username/ryzom/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 /home/username/ryzom/code/ryzom/tools/server/www
ServerName localhost
</VirtualHost> |
...
title | Main Web Site |
---|---|
borderStyle | dashed |
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/home/username/ryzom/code/ryzom/tools/server/ryzom_ams/www/html/"
Alias /admin/ /home/username/ryzom/code/ryzom/tools/server/admin/
<Directory "/home/username/ryzom/code/ryzom/tools/server/admin/">
Options -Indexes FollowSymLinks MultiViews
IndexOptions FancyIndexing FoldersFirst NameWidth=*
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.php
AddType text/html .php .phps
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
</Directory>
...
VHost
Create a public web directory and point a VHost to it.
Point a second VHost to the same directory with port 40916
Upload
Upload the following to your public web directory of your PHP host
/code/web/public_php
Upload the following to a private directory accessible by your PHP host
/code/web/private_php
Setup
Run the following script and follow the instructions
http://<hostname>/setup/
This script will create a config.php under the public php directory, and set up the nel, nel_tool and ams databases.
Additional Notes
Info | ||
---|---|---|
| ||
|
Note |
---|
In order to execute system commands like restarting services you will need to be able to log in as root or execute the command using sudo, e.g.: sudo /etc/init.d/apache2 restart |
- Restart Apache by typing the following.
/etc/init.d/apache2 restart
- Make sure thedirectorythe directory's requiring write permissions is writeable by all.
chmod a+w code/ryzom/tools/server/admin/graphs_output
chmod a+w code/ryzom/tools/server/admin/templates/default_c
chmod a+w
code/ryzom/tools/server/www/login/
logschmod a+w code/ryzom/tools/server/ryzom_ams/www/html/cachechmod a+w code/ryzom/tools/server/ryzom_ams/www/html/templates_c
Setting up MySQL
Note |
---|
The configuration files in
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 files and change these values from 'shard' and "" wherever they appear. (they appear in several .cfg files) Since this (and a password) can lead to unexpected errors (eg. error '4000') it is best to make sure everything works correctly with the defaults first. |
Warning | |||||
---|---|---|---|---|---|
| |||||
If you are getting strange errors some config files may have Windows editor "control-M" endline characters, which appears as a blue ^M in vim. You can remove it with this vi command, noting that ^M is typed by pressing Ctrl+V followed by Ctrl+M:
|
Running MySQL Auto Install
Ryzom AMS now includes auto install scripts for the mysql database, all you have to do is load your DocumentRoot on port 80 that was setup above, for example http://127.0.0.1
...
The installer will by default setup permissions for the user "shard" if you want to use a different user you will need to run the below sql statements.
Code Block | ||||
---|---|---|---|---|
| ||||
GRANT ALL ON nel.* TO newuser@localhost;
GRANT ALL ON nel_tool.* TO newuser@localhost;
GRANT ALL ON ring_open.* TO newuser@localhost;
FLUSH PRIVILEGES; |
Running the shard
Info |
---|
If you're running on Ubuntu or Debian, the default shell is actually dash and the shard/screen scripts will not run correctly in dash. The steps following will have you switch to bash. If you want to keep using dash as the default shell then you will need change the shebang from /bin/sh to /bin/bash in the following files:
|
Tip |
---|
Great screen how-to at: http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/ |
- Run commands:
Code Block |
---|
# if you're on Ubuntu or Debian - disable dash:
[[ `lsb_release -si` = 'Ubuntu' ]] || [[ `lsb_release -si` = 'Debian' ]] &&\
# Change your selection to 'no' so it uses bash instead.
sudo dpkg-reconfigure dash
echo "export RYZOM_PATH=/home/user/ryzom/code/ryzom" >> ~/.bashrc
echo "export PATH=$PATH:$RYZOM_PATH/tools/scripts/linux" >> ~/.bashrc
source ~/.bashrc |
...
Tip | ||
---|---|---|
| ||
|
To make the shard start on boot use the below init script
Info | ||
---|---|---|
| ||
#!/bin/sh # chkconfig: 235 99 10 # description: Start or stop the Ryzom Core server # ### BEGIN INIT INFO # Provides: Ryzom Core Shard # Required-Start: $network $syslog # Required-Stop: $network # Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Description: Start or stop the Ryzom Core server ### END INIT INFO
export RYZOM_PATH=/home/taadmin/ryzom/code/ryzom export PATH=$PATH:$RYZOM_PATH/tools/scripts/linux
start="$RYZOM_PATH/tools/scripts/linux/shard start" stop="$RYZOM_PATH/tools/scripts/linux/shard stop" lockfile=/var/lock/ryzomcoreshard name='Ryzom Core Shard'
case "$1" in 'start') $start >/dev/null 2>&1 </dev/null RETVAL=$? if [ "$RETVAL" = "0" ]; then touch $lockfile >/dev/null 2>&1 fi ;; 'stop') $stop RETVAL=$? if [ "$RETVAL" = "0" ]; then rm -f $lockfile fi ;; 'status') if [ -f $lockfile ]; then echo "$name is running" RETVAL=0 else echo "$name is stopped" RETVAL=1 fi ;; 'restart') $stop ; $start RETVAL=$? ;; *) echo "Usage: $0 { start | stop | restart }" RETVAL=1 ;; esac exit $RETVAL
|
Client login errors
- If your client gives you error messages on connect, check Client Connect Errors.
Notes
If you want to use your shard with the core client, you will have to copy the following file into code/ryzom/common/data_common:
...
cache
chmod a+w code/ryzom/tools/server/ryzom_ams/www/html/templates_c