Cette vieille doc est obsolète
Trace d'installation du serveur de jeu
Je recommence à zéro 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
— 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 <file:///usr/share/doc/gcc-4.8/README.Bugs> 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 <file:///usr/share/doc/gcc-4.8/README.Bugs> 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
<deed> ok
<Shepeng> hg clone http://hg.kervala.net/cmake
<deed> je ferai un post sur le forum avec tout se que j'ai trouvé si tu as encore des erreur
<Shepeng> hg clone http://hg.kervala.net/squish
<Shepeng> export CMAKE_MODULE_PATH=$(pwd)/cmake/modules
<Shepeng> cd squish/
<Shepeng> mkdir build
<Shepeng> cd build
<Shepeng> cmake ..
<Shepeng> make
<Shepeng> ensuite passe root etmake install
<Shepeng> 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 :
<VirtualHost *:80> 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 </VirtualHost> <VirtualHost *:40916> 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 </VirtualHost>
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 :
... <Directory /home/compil/ryzomweb> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> ...
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
— 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