====== Game server installation trace ======
I'm starting from zero [[Resuming the installation|here]] <-- Does not exist!!
===== Installing dependencies =====
First, we add the deposit of Kervala:
Root@vps155841: ~ sudo add-apt-repository ppa:kervala/ppa && sudo apt-get update
Sudo: add-apt-repository: command not found
It's wrong!
I'll start by setting up authentication on the LDAP directory. Then I'll see more precisely how to set up repositories.
Current content of sources.list:
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe
deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe
==== LDAP directory ====
1 - installation of slapd to make a local slave replicate, which will allow to be more autonomous while remaining synchronized. In a first step, we will directly query the remote directory, so we must add a secure connection between the servers, which will in any case be necessary in any case.
apt-get update
apt-get install slapd ldap-utils
Configuration utilities ldap :
root@vps155841:~# cat /etc/ldap/ldap.conf
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
BASE dc=khaganat,dc=net
URI ldaps://khaganat.net
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
Configuration of TLS: on the server khaganat.net, modification of /etc/defaults/slapd, and restart.
SLAPD_SERVICES="ldap://127.0.0.1:389/ ldapi:/// ldaps:///"
Test with ldapsearch -D "cn=admin, dc=khaganat, dc=net" -W: error
Test to reuse gandi certificates.
Ldap-tls-config.ldif file:
dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/GandiStandardSSLCA2.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/khaganat.net.crt
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/khaganat.net.key
ldapmodify -QY EXTERNAL -H ldapi:/// -f ldap-tls-config.ldif
The slapd server does not start anymore.
Configuring replication
==== Compilation Test ====
apt-get install mercurial
adduser compil
adduser compil sudo
su - compil
=== dependencies ===
I install the dependencies after the atlassian tutorial, removing libwww:
compil@vps155841:~$ sudo apt-get install mercurial libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-dev rrdtool libmysqlclient15-dev bison libxmu-dev autoconf automake libsquish-dev libcpptest-dev
[sudo] password for compil:
Reading Package Lists... Done
Building the dependency tree
Reading status information... Done
Note, select 'libmysqlclient-dev' instead of 'libmysqlclient15-dev'
E: Unable to find the package libsquish-dev
compil@vps155841:~$
After removing libsquish-dev, it passes, so we must add the depot kervala.
compil@vps155841:~$ cat /etc/apt/sources.list.d/kervala.list
deb http://ppa.launchpad.net/kervala/ppa/ubuntu trusty main
compil@vps155841:~$ gpg --recv-keys 9C2306555E354EB2
compil@vps155841:~$ gpg --export --armor 5E354EB2 |sudo apt-key add -
OK
compil@vps155841:~$ sudo apt-get update
...
compil@vps155841:~$ sudo apt-get install mercurial libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-dev rrdtool libmysqlclient15-dev bison libxmu-dev autoconf automake libsquish-dev libcpptest-dev
Libsquish-dev is not found, it will be complimented by hand.
compil@vps155841:~$ sudo apt-get install mercurial libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-dev rrdtool libmysqlclient15-dev bison libxmu-dev autoconf automake libcpptest-dev
...
After this, an additional 306 MB of disk space will be used.
Would you like to continue ?[We]
...
=== Recovering sources ===
compil@vps155841:~$ hg clone http://depots.khaganat.net/scm/hg/khanat-code
destination directory: khanat-code
requesting all changes
adding changesets
adding manifests
adding file changes
added 6264 changesets with 61202 changes to 26592 files (+26 heads)
updating to branch default
13345 files updated, 0 files merged, 0 files removed, 0 files unresolved
compil@vps155841:~$ hg clone http://hg.kervala.net/packaging
destination directory: packaging
requesting all changes
adding changesets
adding manifests
adding file changes
added 593 changesets with 30783 changes to 24125 files
updating to branch default
22211 files updated, 0 files merged, 0 files removed, 0 files unresolved
=== Compilation ===
compil@vps155841:~$ export RYHOME=$(pwd)/khanat-code/code
compil@vps155841:~$ mkdir $RYHOME/build && cd $RYHOME/build
compil@vps155841:~/khanat-code/code/build$
Cmake ask libwww.(ligne cmake: cmake -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=ON -DWITH_QT=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_RYZOM_TOOLS=ON -DWITH_STATIC=ON -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF ..)
Still on test development.
To have the debug symbols for gdb, think about adding:
-DWITH_SYMBOLS=ON
I found the line cmake of Liria for my VM:
cmake -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_STATIC=ON -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF -DWITH_NEL=ON -DWITH_SOUND=OFF -DWITH_STATIC_DRIVERS=ON -DWITH_NEL_SAMPLES=OFF
\\ --- //[[user:yannk|Yann K]] 2015/12/06 16:08//
compil@vps155841:~/khanat$ hg checkout develop
77 files updated, 0 files merged, 3 files removed, 0 files unresolved
compil@vps155841:~/khanat$ cd $RYHOME/build
compil@vps155841:~/khanat-code/code/build$ cmake -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=ON -DWITH_QT=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_RYZOM_TOOLS=ON -DWITH_STATIC=ON -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF ..
-- DEBUG size_t is 8
-- DEBUG off_t is 8
-- Boost version: 1.54.0
-- Luabind is using Lua 5.2
-- Found Lua52: /usr/lib/x86_64-linux-gnu/liblua5.2.so;/usr/lib/x86_64-linux-gnu/libm.so
-- Found Luabind: /usr/lib/libluabind.so
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "7.35.0")
-- Found FreeType: /usr/lib/x86_64-linux-gnu/libfreetype.so
-- Found Ogg: /usr/lib/x86_64-linux-gnu/libogg.so
-- Found Vorbis: /usr/lib/x86_64-linux-gnu/libvorbis.so
-- Warning: Unable to find Squish!
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.1f")
-- Found MySQL: /usr/include/mysql, /usr/lib/x86_64-linux-gnu/libmysqlclient.so;/usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/compil/khanat-code/code/build
compil@vps155841:~/khanat-code/code/build$ make -j5
...
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See for instructions.
make[2]: *** [nel/src/gui/CMakeFiles/nelgui.dir/lua_ihm.cpp.o] Error 4
make[2]: *** Waiting for unfinished jobs....
Scanning dependencies of target shapes_exporter
compil@vps155841:~/khanat-code/code/build$ make -j5
...
After several crashes with this kind of compilation, I try with the -j3 option, then -j1
The compilation seems to prefer this one but it still makes errors.
Final error:
collect2: error: ld returned 1 exit status
make[2]: *** [bin/ryzom_shard_unifier_service] Error 1
make[1]: *** [ryzom/server/src/shard_unifier_service/CMakeFiles/ryzom_shard_unifier_service.dir/all] Error 2
make: *** [all] Error 2
We try again
compil@vps155841:~/khanat-code/code/build$ make clean
compil@vps155841:~/khanat-code/code/build$ make -j1
...
[ 27%] Building CXX object nel/src/gui/CMakeFiles/nelgui.dir/lua_ihm.cpp.o
{standard input}: Assembler messages:
{standard input}:992: Warning: end of file not at end of a line; newline inserted
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See for instructions.
make[2]: *** [nel/src/gui/CMakeFiles/nelgui.dir/lua_ihm.cpp.o] Error 4
make[1]: *** [nel/src/gui/CMakeFiles/nelgui.dir/all] Error 2
make: *** [all] Error 2
compil@vps155841:~/khanat-code/code/build$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/ploop14585p1 11G 2,6G 7,7G 26% /
none 4,0K 0 4,0K 0% /sys/fs/cgroup
none 103M 72K 103M 1% /run
none 512M 0 512M 0% /dev/shm
none 5,0M 0 5,0M 0% /run/lock
none 512M 0 512M 0% /run/shm
none 100M 0 100M 0% /run/user
Added -DFINAL_VERSION=ON -DCMAKE_INSTALL_PREFIX: PATH=/home/compil/ryzomserver/ to cmake.
The error occurs on nelgui.dir, shortly before we have this line: [26%] Building CXX object nel/src/gui/ CMakeFiles /nelgui.dir/libwww_types.cpp.o that runs correctly.
I resume the default branch and compile libwww.
compil@vps155841:~/khanat-code$ hg checkout default
cd ..
compil@vps155841:~$ hg clone http://hg.kervala.net/libwww
compil@vps155841:~$ cd libwww/
compil@vps155841:~/libwww$ ./autogen.sh
...
compil@vps155841:~/libwww$ ./configure --with-ssl=no --with-zlib --with-expat --with-gnu-ld --enable-shared
...
compil@vps155841:~/libwww$ make
...
compil@vps155841:~/libwww$ sudo make install
...
compil@vps155841:~$ cd $RYHOME/build
compil@vps155841:~/khanat-code/code/build$
And as long as there is also cpptest
Shepeng> I complicated squish, not wondering why it works then before no
ok
hg clone http://hg.kervala.net/cmake
I will make a post on the forum with everything that I found if you still have errors
hg clone http://hg.kervala.net/squish
export CMAKE_MODULE_PATH=$(pwd)/cmake/modules
cd squish /
mkdir build
cd build
cmake ..
make
then pass root etmake install
and I retent the server compilation
But I have the same error.
Test with the kua 5.1 OFF option: compil@vps155841:~/khaganat/code/build$ cmake -DWITH_NEL=ON -DWITH_RYZOM_SERVER=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_RYZOM_CLIENT=OFF -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF -DWITH_SOUND=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_LUA51=OFF ..
it goes!
Ma VM a été compilée avec les options :
\\ cmake -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_NEL=ON -DWITH_SOUND=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF -DWITH_NEL_SAMPLES=OFF
=== Configuration ===
I continue on this tutorial: https://ryzomcore.atlassian.net/wiki/display/RC/Configure+Linux+Web+Services
apt-get install apache2 php5 php5-mysql php5-gd rrdtool screen
adduser compil www-data
Configuration apache :
ServerName http://khanat.khaganat.net
ServerAdmin webmaster@localhost
DocumentRoot /home/compil/ryzomweb
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName http://khanat.khaganat.net
ServerAdmin webmaster@localhost
DocumentRoot /home/compil/ryzomweb
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
compil@vps155841:~$ cp -r khanat-code/code/web/public_php/ ryzomweb/
compil@vps155841:~$ cp -r khanat-code/code/web/private_php/ ryzomweb/
compil@vps155841:~$ chgrp www-data -R ryzomweb/
I have an access error:
[Tue Aug 25 08:22:20.602092 2015] [authz_core:error] [pid 19350] [client 80.236.34.112:39932] AH01630: client denied by server configuration: /home/compil/ryzomweb/public_php/setup/index.php
Editing the file: /etc/apache2/apache2.conf :
...
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
...
== Installation via the web ==
From the url: http://khanat.khaganat.net/setup/install.php
Apt-get install mysql-server
Creating mdp for root mysql and admin tool, setup and ams
manque mcrypt : apt-get install php5-mcrypt
php5enmod mcrypt
service apache2 restart
== Shardn Launch Pb tries to resolve ==
hg clone http://depots.khaganat.net/scm/hg/khanat-ressources
ln -s /home/compil/khanat-ressources/leveldesign/ /home/compil/khaganat/code/ryzom/server/leveldesign
ln -s /home/compil/khanat-ressources/primitives/ khaganat/code/ryzom/server/primitives
ln -s /home/compil/khanat-ressources/sound khaganat/code/ryzom/server/sound
ln -s /home/compil/khanat-ressources/common khaganat/code/ryzom/server/common
ln -s /home/compil/khanat-ressources/continents/ khaganat/code/ryzom/server/continents
ln -s /home/compil/khanat-ressources/translation/ khaganat/code/ryzom/server/translation
ln -s /home/compil/khanat-ressources/workspace/ khaganat/code/ryzom/server/workspace
mkdir khanat-code/code/ryzom/server/data_leveldesign
ln -s /home/compil/khanat-ressources/leveldesign/ /home/compil/khanat-code/code/ryzom/server/data_leveldesign/leveldesign
ln -s /home/compil/khanat-ressources/collisions/ khanat-code/code/ryzom/server/data_shard/collisions
Modified I modified this file: $RYZOM_PATH/server/frontend_service.cfg replaced the address by khanat.khaganat.net in variable FSListenHost = "your.server.ip.adress";
I cheat :
for var in khanat-code/code/ryzom/server/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_de}; done
for var in khanat-code/code/ryzom/server/translation/translated/*_wk.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_wk/_fr}; done
for var in khanat-code/code/ryzom/server/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_es}; done
for var in khanat-code/code/ryzom/server/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_ru}; done
=== Recompile data from datasheets ===
It is possible that there is a problem with the sheet_id.bin/visual_slot.tab and other packed_sheets at the start in which case you have to recreate them(but you must have compiled the tools for that):
A priority on our server, the commands to be made will be:
cd /home/compil/khaganat-code/code/build/bin
./make_sheet_id -o/home/compil/khanat-ressources/leveldesign/game_elem/sheet_id.bin /home/compil/khanat-ressources/leveldesign/game_elem /home/compil/khanat-ressources/leveldesign/game_element /home/compil/khanat-ressources/leveldesign/world /home/compil/khanat-ressources/leveldesign/ecosystems
The idea is to indicate all the datasheets useful to the system so that it numbers them by giving it the list of all the directories in leveldesign where there are (except that of definition) and the -o is for Indicate to create this file in the directory game_elem of the folder leveldesign
We must also delete files that we will regenerate:
rm -f /home/compil/khanat-code/code/ryzom/server/data_shard/*.packed_sheets
rm -f /home/compil/khanat-code/code/ryzom/common/data_common/visual_slot.tab
You must then restart the sheet_packer, first configuring its config file:
cd /home/compil/khanat-code/code/ryzom/tools/sheets_packer
nano sheets_packer.cfg
And make sure the paths are good, with the filename changes etc. For us I got to:
/////////////////////////////////
/////////////////////////////////
/// SHEETS PACKER CONFIG FILE ///
/////////////////////////////////
/////////////////////////////////
DataPath = { "../../common/data_leveldesign", "../../common/data_common", "../../client/data", "../../../../../khanat-ressources/common", "../../../../../khanat-ressources/leveldesign", "../../../../../khanat-ressources/primitives" };
WorldSheet = "ryzom.world";
PrimitivesPath = "../../../../../khanat-ressources/primitives";
OutputDataPath = "../../client/data";
LigoPrimitiveClass = "world_editor_classes.xml";
Then we can launch the sheets_packer, remaining in the directory where we have this .cfg file because the paths are relative:
/home/compil/khanat-code/code/build/bin/sheets_packer
Then copy the visual_slot.tab to its place
cp visual_slot.tab /home/compil/khanat-code/code/ryzom/common/data_common/visual_slot.tab
If I recall correctly, *.packed_sheets are regenerated by themselves when the server restarts if they are absent(which is the case since they have just been deleted). It is therefore necessary to wait until it is launched to be able to retrieve them and copy them in its client(see below).
Attention: it will be necessary to provide this to the client(in it's "user" directory):
* *.packed_sheets files from /home/compil/khanat-code/code/ryzom/server/data_shard/
* The visual_slot.tab file in /home/compil/khanat-code/code/ryzom/common/data_common/
* The file sheet_id.bin in /home/compil/khanat-code/code/ryzom/common/data_leveldesign/leveldesign/Game_elem/
khanat-code/code/ryzom/common
khanat-code/code/ryzom/tools/scrips/linux
khanat-code/code/ryzom/server
khanat-code/code/build/bin/ryzom_*_service
khanat-ressources/leveldesign/ khanat-code/code/ryzom/common/data-leveldesign/leveldesign
khanat-ressources/primitives/ khanat-code/code/ryzom/common/data-leveldesign/primitives
khanat-ressources/sound khanat-code/code/ryzom/server/sound
khanat-ressources/common khanat-code/code/ryzom/server/common
khanat-ressources/continents/ khanat-code/code/ryzom/server/continents
khanat-ressources/translation/ khanat-code/code/ryzom/server/translation
khanat-ressources/workspace/ khanat-code/code/ryzom/server/workspace
khanat-ressources/collisions/ khanat-code/code/ryzom/server/data_shard/collisions
To reduce the errors in AIS launch logs that seemingly bother, I deleted all symbolic links to the khaganat-data content that was directly in /khaganat-code/code/ryzom/server as well as the Directories /src and /patchman_cfg that were there and /dataleveldesign which contained another cross-reference to khaganat-ressources/leveldesign.
I retained the contents of the two deleted directories in /home/compil/storage_temp. Just relocate its contents to /home/compil/khaganat-code/code/ryzom/server if needed
\\ --- //[[user:yannk|YannK]] 2015/11/08 15: 42//
To check, that the shard works without a customer:
http://khanat.khaganat.net:40916/login/r2_login.php?cmd=login&login=******&password=******&clientApplication=ryzom_open
{{tag>Tag_to_add}}