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}}