Cette vieille doc est obsolète
====== Trace d'installation du serveur de jeu ======
Je recommence à zéro [[Reprise de l'installation|ici]]
===== Installation des dépendances =====
D'abord, on ajoute le dépôt de Kervala :
root@vps155841:~# sudo add-apt-repository ppa:kervala/ppa && sudo apt-get update
sudo: add-apt-repository: command not found
C'est mal parti !
Je vais pour commencer par configurer l'authentification sur l'annuaire LDAP. Ensuite je verrai plus précisément comment configurer les dépôts.
Contenu actuel de 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
==== Annuaire LDAP ====
1 - installation de slapd pour faire un réplicat esclave local, ce qui permettra d’être plus autonome tout en restant synchronisé. Dans un premier temps, on va interroger directement l'annuaire distant, il faut donc ajouter une connexion sécurisée entre les serveurs, qui sera de toute façon nécessaire dans tous les cas.
apt-get update
apt-get install slapd ldap-utils
Configuration des outils 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 de TLS : sur le serveur khaganat.net, modification de /etc/defaults/slapd, et redémarrage.
SLAPD_SERVICES="ldap://127.0.0.1:389/ ldapi:/// ldaps:///"
Test avec ldapsearch -D "cn=admin,dc=khaganat,dc=net" -W : erreur
Essai pour réutiliser les certificats gandi.
Fichier ldap-tls-config.ldif :
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
Le serveur slapd ne se lance plus.
Configuration de la réplication
==== Test de compilation ====
apt-get install mercurial
adduser compil
adduser compil sudo
su - compil
=== dépendances ===
J'installe les dépendances d'après le tuto atlassian, en enlevant 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:
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Note, selecting 'libmysqlclient-dev' instead of 'libmysqlclient15-dev'
E: Impossible de trouver le paquet libsquish-dev
compil@vps155841:~$
Après suppression de libsquish-dev, ça passe, il faut donc ajouter le 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 n'est pas trouvé, on le compliera à la main
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
...
Après cette opération, 306 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]
...
=== Récupération des sources ===
compil@vps155841:~$ hg clone http://depots.khaganat.net/scm/hg/khaganat
destination directory: khaganat
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)/khaganat/code
compil@vps155841:~$ mkdir $RYHOME/build && cd $RYHOME/build
compil@vps155841:~/khaganat/code/build$
cmake me demande 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 ..)
On teste develop
Pour avoir les symboles de débugage pour gdb, penser à ajouter :
-DWITH_SYMBOLS=ON
J'ai retrouvé la ligne cmake de Liria pour ma 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:~/khaganat$ hg checkout develop
77 files updated, 0 files merged, 3 files removed, 0 files unresolved
compil@vps155841:~/khaganat$ cd $RYHOME/build
compil@vps155841:~/khaganat/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/khaganat/code/build
compil@vps155841:~/khaganat/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:~/khaganat/code/build$ make -j5
...
Après plusieurs plantages de ce genre de la compilation, j'essaie avec l'option -j3, puis -j1
La compilation pregresse mais fait toujours des erreurs.
Erreur finale :
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
On essaie de nouveau
compil@vps155841:~/khaganat/code/build$ make clean
compil@vps155841:~/khaganat/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:~/khaganat/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
Ajout de -DFINAL_VERSION=ON -DCMAKE_INSTALL_PREFIX:PATH=/home/compil/ryzomserver/ au cmake.
L'erreur se fait sur nelgui.dir, peu avant on a cette ligne : [ 26%] Building CXX object nel/src/gui/CMakeFiles/nelgui.dir/libwww_types.cpp.o qui s'exécute correctement.
Je reprends la branche default et compile libwww
compil@vps155841:~/khaganat$ 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:~/khaganat/code/build$
Et tant qu 'a y être cpptest aussi
Shepeng> j'ai complié squish, me demande pas pourquoi ça marche alors qu'avant non
ok
hg clone http://hg.kervala.net/cmake
je ferai un post sur le forum avec tout se que j'ai trouvé si tu as encore des erreur
hg clone http://hg.kervala.net/squish
export CMAKE_MODULE_PATH=$(pwd)/cmake/modules
cd squish/
mkdir build
cd build
cmake ..
make
ensuite passe root etmake install
et je retente la compil du serveur
Mais j'ai la même erreur
test avec l'option kua 5.1 OFF : 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 ..
ça passe !
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 ===
Je continue sur ce tuto : 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 khaganat/code/web/public_php/ ryzomweb/
compil@vps155841:~$ cp -r khaganat/code/web/private_php/ ryzomweb/
compil@vps155841:~$ chgrp www-data -R ryzomweb/
J'ai une erreur d'accès :
[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
Modification du fichier /etc/apache2/apache2.conf :
...
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
...
== Installation par le web ==
A partir de l'url : http://khanat.khaganat.net/setup/install.php
apt-get install mysql-server
Creation de mdp pour root mysql et admin tool, setup et ams
manque mcrypt : apt-get install php5-mcrypt
php5enmod mcrypt
service apache2 restart
== Pb de lancement du shardn essaie de résolution ==
hg clone http://depots.khaganat.net/scm/hg/khaganat-data
ln -s /home/compil/khaganat-data/leveldesign/ /home/compil/khaganat/code/ryzom/server/leveldesign
ln -s /home/compil/khaganat-data/primitives/ khaganat/code/ryzom/server/primitives
ln -s /home/compil/khaganat-data/sound khaganat/code/ryzom/server/sound
ln -s /home/compil/khaganat-data/common khaganat/code/ryzom/server/common
ln -s /home/compil/khaganat-data/continents/ khaganat/code/ryzom/server/continents
ln -s /home/compil/khaganat-data/translation/ khaganat/code/ryzom/server/translation
ln -s /home/compil/khaganat-data/workspace/ khaganat/code/ryzom/server/workspace
mkdir khaganat/code/ryzom/server/data_leveldesign
ln -s /home/compil/khaganat-data/leveldesign/ /home/compil/khaganat/code/ryzom/server/data_leveldesign/leveldesign
ln -s /home/compil/khaganat-data/collisions/ khaganat/code/ryzom/server/data_shard/collisions
modifié j'ai modifié ce fichier : $RYZOM_PATH/server/frontend_service.cfg remplacé l'adresse par khanat.khaganat.net dans la variable FSListenHost = "your.server.ip.adress";
je triche :
for var in khaganat/code/ryzom/server/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_de}; done
for var in khaganat/code/ryzom/server/translation/translated/*_wk.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_wk/_fr}; done
for var in khaganat/code/ryzom/server/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_es}; done
for var in khaganat/code/ryzom/server/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_ru}; done
=== Recompiler les données des datasheets ===
Il est possible qu'il y ait un souci avec le sheet_id.bin/visual_slot.tab et autres packed_sheets au départ auquel cas il faut les recréer (mais il faut avoir compilé les outils pour ça ) :
A priori sur notre serveur, les commandes à faire seront :
cd /home/compil/khaganat/code/build/bin
./make_sheet_id -o/home/compil/khaganat-data/leveldesign/game_elem/sheet_id.bin /home/compil/khaganat-data/leveldesign/game_elem /home/compil/khaganat-data/leveldesign/game_element /home/compil/khaganat-data/leveldesign/world /home/compil/khaganat-data/leveldesign/ecosystems
L'idée est d'indiquer toutes les datasheets utiles au système pour qu'il les numérote en lui donnant la liste de tous les répertoires dans leveldesign où il y en a (sauf celui de définition) et le -o, c'est pour indiquer de créer ce fichier dans le répertoire game_elem du dossier leveldesign
Il faut également effacer des fichiers que nous allons regénérer :
rm -f /home/compil/khaganat/code/ryzom/server/data_shard/*.packed_sheets
rm -f /home/compil/khaganat/code/ryzom/common/data_common/visual_slot.tab
Il faut ensuite relancer le sheet_packer, configurant d'abord son fichier de config :
cd /home/compil/khaganat/code/ryzom/tools/sheets_packer
nano sheets_packer.cfg
et s'assurer que les chemins sont bons, avec les changements de noms de dépôt etc.. Pour nous j'en suis arrivé à :
/////////////////////////////////
/////////////////////////////////
/// SHEETS PACKER CONFIG FILE ///
/////////////////////////////////
/////////////////////////////////
DataPath = { "../../common/data_leveldesign", "../../common/data_common", "../../client/data", "../../../../../khaganat-data/common", "../../../../../khaganat-data/leveldesign", "../../../../../khaganat-data/primitives" };
WorldSheet = "ryzom.world";
PrimitivesPath = "../../../../../khaganat-data/primitives";
OutputDataPath = "../../client/data";
LigoPrimitiveClass = "world_editor_classes.xml";
Puis on peut lancer le sheets_packer, en restant bien dans le répertoire où on a ce fichier .cfg car les chemins sont relatifs :
/home/compil/khaganat/code/build/bin/sheets_packer
Puis copier le visual_slot.tab à sa place
cp visual_slot.tab /home/compil/khaganat/code/ryzom/common/data_common/visual_slot.tab
Si je me souviens bien, les *.packed_sheets sont regénérés tout seul au redémarrage du serveur s'ils sont absents (ce qui est le cas vu qu'on vient de les effacer). Il faut donc attendre qu'il soit lancé pour pouvoir les récupérer et les copier dans son client (cf. ci-dessous).
Attention : il faudra fournir à son client (dans son user) :
* Les fichiers *.packed_sheets de /home/compil/khaganat/code/ryzom/server/data_shard/
* Le fichier visual_slot.tab dans /home/compil/khaganat/code/ryzom/common/data_common/
* Le fichier sheet_id.bin dans /home/compil/khaganat/code/ryzom/common/data_leveldesign/leveldesign/Game_elem/
khaganat/code/ryzom/common
khaganat/code/ryzom/tools/scrips/linux
khaganat/code/ryzom/server
khaganat/code/build/bin/ryzom_*_service
khaganat-data/leveldesign/ khaganat/code/ryzom/common/data-leveldesign/leveldesign
khaganat-data/primitives/ khaganat/code/ryzom/common/data-leveldesign/primitives
khaganat-data/sound khaganat/code/ryzom/server/sound
khaganat-data/common khaganat/code/ryzom/server/common
khaganat-data/continents/ khaganat/code/ryzom/server/continents
khaganat-data/translation/ khaganat/code/ryzom/server/translation
khaganat-data/workspace/ khaganat/code/ryzom/server/workspace
khaganat-data/collisions/ khaganat/code/ryzom/server/data_shard/collisions
Pour réduire les erreurs dans les logs de lancement d'AIS qui pose apparemment souci, j'ai supprimé tous les liens symboliques vers le contenu de khaganat-data qu'il y avait directement dans /khaganat/code/ryzom/server ainsi que les répertoires /src et /patchman_cfg qui s'y trouvaient et /dataleveldesign qui contenait un autre renvoi vers khaganat-data/leveldesign.
J'ai conservé le contenu des deux répertoires effacés dans /home/compil/stockage_temp. Il suffit de redéplacer son contenu vers /home/compil/khaganat/code/ryzom/server si besoin
\\ --- //[[user:yannk|Yann K]] 2015/11/08 15:42//
Pour verifier, que le shard marche sans client:
http://khanat.khaganat.net:40916/login/r2_login.php?cmd=login&login=******&password=******&clientApplication=ryzom_open
{{tag>obselete shard sysadmin serveur}}