EDIT: Il existe un package pour debian ici. Je ne l’ai pas encore testé ;)
Je vous propose aujourd’hui un tutoriel qui vous aidera a créer un serveur privé World Of Warcraft sous Linux/Debian. Attaquons donc tout de suite le vif du sujet, c’est plutôt long, il vous faudra donc:
- Un serveur sous debian (ou assimilé, comme: K-Ubuntu),
- Les programmes/librairies suivantes: zlibc gcc g++ make automake autoconf glibc glibc-dev mysql binutils cpp libc6 libc6-dev libc6-i686 libgcc libgcc-dev libmysql++-dev linux-header-(version) linux-kernel-headers linux-kernel-devel makedepend mysql-client-5.0 mysql-common mysql-server python libssl libssl-dev openssl ssl-cert subversion g77 zlib1g-dev
screen mc unzip libstdc++ unrar
- Les fichiers suivant:
DBC: http://www.megaupload.com/fr/?d=EY3C7NLV,
MAP: http://www.megaupload.com/fr/?d=657UAN8X,
VMAP: http://www.megaupload.com/?d=ZPTMQYY3 et http://www.megaupload.com/?d=BPNLKG40
- Du temps,
- Une bonne dose de courage,
- Et quelques litres de café :)
Récapitulatif des logiciels utilisés:
Mangos SVN (Serveur): 0.10
UBD (Base de données): 0.9.1,
Core: 5057,
SD2: 233
DBC: 2.3.3
Maps, vMAps: 2.3.2
# aptitude install zlibc gcc g++ make automake autoconf glibc glibc-dev mysql binutils cpp libc6 libc6-dev libc6-i686 libgcc libgcc-dev libmysql++-dev linux-header-`uname -r` linux-kernel-headers linux-kernel-devel makedepend mysql-client-5.0 mysql-common mysql-server python libssl libssl-dev openssl ssl-cert subversion g77 zlib1g-dev screen mc unzip libstdc++ unrar
Allez donc vous faire un café, maintenant. Deux sucres pour moi, s’il vous plaît.
- Créez l’utilisateur qui lancera le serveur (pour des raisons de sécurité, ne lancez pas l’emulateur en root!) – ‘wowsvr’ chez moi, mais vous pouvez évidement l’adapter a votre utilisation
# adduser wowsvr
- Puis on se rend dans son home et on crée le dossier qui va contenir les fichiers du serveur.
# cd /home/wowsvr
# mkdir mangos
# cd mangos
- On se connecte au SVN de mangos et on récupère la dernière version de l’emulateur.
# svn co https://mangos.svn.sourceforge.net/svnroot/mangos/trunk
- On se connecte au SVN de ScriptDev2 et on récupere sa dernière version.
# cd trunk/src/bindings
# svn co https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/
- Puis on prépare la compilation
# cd ../..
- On édite donc le fichier configure.ac
# vim configure.ac
- éditez le fichier configure.ac, rajoutez les lignes suivantes a la fin du fichier entre:
src/bindings/Makefile
src/bindings/universal/Makefile
Et
)]
Ajoutez:
src/bindings/scriptdev2/Makefile
src/bindings/scriptdev2/sql/Makefile
src/bindings/scriptdev2/sql/Updates/Makefile
- Et on reconfigure
# autoreconf --install --force
# autoconf
# automake src/bindings/scriptdev2/Makefile
# automake src/bindings/scriptdev2/sql/Makefile
# automake src/bindings/scriptdev2/sql/Updates/Makefile
# ./configure --prefix=/home/wowsvr/mangos --sysconfdir=/home/wowsvr/mangos/etc --with-python --enable-cli --enable-ra --datadir=/home/wowsvr/mangos
- Voila, la on attaque la compilation.. attention ça peut être très long suivant votre configuration, servez nous donc le café ! (Environ 30mn chez moi) Donc ne l’interrompez pas ! Au pire, si vous plantez tapez « # make clean » et recommencez…
# make
# make install
- Reprenez un café..
# cd src/bindings/scriptdev2
# make
# make install
- On va maintenant étudier l’architecture du serveur:
# Cd /home/wowsvr/mangos
| etc/ = Tous les fichiers de configuration.
| bin/ = Les exécutables..
| mangos/ = La base de données.
| trunk/ = Les sources.
| Lib = Les libraires ainsi que le registre, ne rien changer dans ce dossier !
| scriptdev2/ = ici se trouvent les fichiers pour SQL scriptdev2.
- maintenant, la manière LA PLUS FACILE d’obtenir les cartes et les dossiers de DBC sur votre serveur est de les récupérer sur votre machine windows parce que Mangos ne les intègre pas, sauvegardez les dans un coin, au cas ou vous deviez réinstaller le serveur ! Recuprez ‘ad.exe’ et ‘MPQE.exe’ et utilisez les pour récupérer les fichiers en question.
TECHNIQUEMENT Mangos est maintenant installé, cependant, je ne vous ai pas encore parlé des bases de données.. Allons-y :)
# cd /home/wowsvr/mangos/trunk
# mv * ..
# cd ../sql
# wget https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/Full_DB/UDB_0.9.1_Core_5057_SD2_233.rar --no-check-certificate
# unrar e UDB_0.9.1_Core_5057_SD2_233.rar
# mysql –u root –p
- Entrez votre mot de passe..
> . create_mysql.sql
> use characters
> . characters.sql
> use realmd
> . realmd.sql
> use mangos
> . UDB_0.9.1_Core_5057_SD2_233.sql
- Vous pouvez encore vous resservir un café :)
> use realmd
> UPDATE realmlist SET `name` = 'LeNomDuSvr';
- Entrez ici l’ip du serveur, si vous ne le connaisez pas tapez # ifconfig
> UPDATE realmlist SET `address` = '0.0.0.0';
- Si vous n’avez pas encore saisi de mdp pour l’utilisateur mangos sur la BDD:
> SET PASSWORD FOR mangos@localhost=PASSWORD('mangos');
acct: le numéro de votre compte, en gros l’id (langage SQL), donc pour le premier compte, mettez « 1″
login: vous mettez votre nom de compte, celui que vous voulez!
password: vous mettez votre mot de passe, celui que vous voulez!
gm: vous la laissez vide pour les joueurs normaux, vous mettez « a » pour un compte MJ, et « az » pour un compte administrateur
flags: mettez 8 pour que le compte puisse accéder aux maps Burning crusade
Copiez les fichiers ‘Maps’, ‘vMAps’ et ‘DBC’ et votre serveur est prêt a être lancé ! Bon allez, puisque vous êtes gentils je vais même vous fournir un script qui vous permettra de lancer le serveur:
Copiez ceci dans un fichier nomé « lanceur.sh » dans votre dossier « bin » (celui qui contient realmd et mangosd) puis tapez :
# chmod +x lanceur.sh
Contenu du script:
#!/bin/bash
L_SRV=realmd
C_SRV=mangosd
printf "$(date)tLancement des aplications de mangos...n"
screen -dmS wowReal nice ./${L_SRV}
screen -dmS wowMangos nice ./${C_SRV}
printf "$(date)tLancé.nn"
while [ true ]; do
sleep 15
printf "$(date)tTest si les processus son démaré...n"
if [ "0" = "$(ps x | grep -e real | wc -l)" ]; then
printf "$(date)tErreur: Realmd serveur a crashé!n"
printf "$(date)tmise en attente...n"
sleep 5
if [ "0" = "$(ps x | grep -e real | wc -l)" ]; then
printf "$(date)tCrash! Relancement du serveur realmd...n"
screen -dmS wowReal nice ./${L_SRV}
printf "$(date)tlancé.n"
else
printf "$(date)tProcessus déja démaré.n"
fi
fi
if [ "0" = "$(ps x | grep -e mangos | wc -l)" ]; then
printf "$(date)tErreur: mangos serveur a crashé!n"
printf "$(date)tmise en attente...n"
sleep 5
if [ "0" = "$(ps x | grep -e mangos | wc -l)" ]; then
printf "$(date)tCrash! Relancement du serveur mangos...n"
screen -dmS wowMangos nice ./${C_SRV}
printf "$(date)tlancé.n"
else
printf "$(date)tProcessus déja démaré.n"
fi
fi
printf "$(date)tAnalise complété.nn"
done
Et merci pour le café ;)
Possibly Related Posts:
- Bugfix: Roundcube quitte immédiatement après le login
- Reset du mot de passe de contrôle parental sur la wii
- Echosdunet.net: Trop c’est trop…
- Les applications indispensables pour Os X
- Lire les jeux gravés sur une Wii, méthode logicielle.












gozaru says:
euh je bloque au niveau de l’edition du fichier configure.ac .
jan 05, 2008, 11:50On execute la commande, on modifie le fichier puis ? On fait quoi pour « valider » l’edition ? je reste toujours en mode edition pour le fichier configure.ac
Adri says:
En mode « Insertion » tu appuye sur « Echap » puis tu tape :wq et entrée.
(w pour write et q pour quit)
tu peux obtenir d’autres informations sur l’utilisation de vim en tapant
man vim
En espérant t’avoir aidé.
jan 05, 2008, 21:27crash says:
Bonsoir,
Heu moi le soucis vient qu’à la fin vous dites :
Copiez ceci dans un fichier nomé “lanceur.sh” dans votre dossier “bin” (celui qui contient realmd et mangosd) puis tapez
Je n’ai aucun dossier bin après avoir suivit le tutorial à la lettre.
jan 05, 2008, 18:33Adri says:
étonnant, ils on peut etre changé la structure depuis, fait donc un recherche sur ton disque pour voir ou se trouvent les binaires. Pour ça:
# find / -name realmd
et
# find / -name mangosd
(normelement ils se trouvent dans le même répertoire. Des que tu as trouvé ce répertoire, place le script dans ce même dossier.
jan 05, 2008, 12:37Aelin says:
Salut,
J’ai un problème au niveau de # cd src/bindings/scriptdev2
jan 05, 2008, 19:05# make
# make install
Lorsque j’écris make, sa me marque exemple: Makefile:387: .deps/system.Plo: Aucun fichier ou dossier de ce type, après sa me marque à la fin: make: *** Pas de règle pour fabriquer la cible « .deps/system.Plo ». Arrêt. Pouvez vous m’aider svp? Merci
Adri says:
étonnant.. avant de m’avancer que quoi que ce soit, je te conseillerais de repartir a zéro, re-télécharger le svn.. peut être une erreur de transfert ?
Vérifie aussi que tu as bien conserver la structure donnée: /home/wowsvr/mangos (ou de modifier ton ./configure ..
jan 05, 2008, 22:27Aelin says:
J’ai réussi à le régler tout seul
jan 05, 2008, 22:34Aelin says:
Merci quand meme
jan 05, 2008, 22:34Adri says:
Peut être pourrais tu expliquer -si tu remet les pieds un jours ici – d’où venais ton problème ? Comme ça, si d’autres personnes sont exposés au même soucis, ton expérience pourrais leurs être très utile ;)
jan 05, 2008, 6:31Aelin says:
Mon problème était lorque j’écrivais make à # cd src/bindings/scriptdev2 . J’ai recommencer au niveau de # vim configure.ac et j’ai vu que vim n’avait pas sauvegarder et j’ai aussi réalisé que j’avais mal configuré ici: src/bindings/Makefile
src/bindings/universal/Makefile
Et
)]
Ajoutez:
src/bindings/scriptdev2/Makefile
src/bindings/scriptdev2/sql/Makefile
src/bindings/scriptdev2/sql/Updates/Makefile
J’avais fait : src/bindings/Makefile
src/bindings/scriptdev2/Makefile
src/bindings/scriptdev2/sql/Makefile
src/bindings/scriptdev2/sql/Updates/Makefile
src/bindings/universal/Makefile
)]
Après j’ai fait : src/bindings/Makefile
src/bindings/scriptdev2/Makefile
src/bindings/universal/Makefile
src/bindings/scriptdev2/sql/Makefile
src/bindings/scriptdev2/sql/Updates/Makefile)]
Après cela sa remarché
J’espère avoir aider quelqu’un :)
jan 05, 2008, 21:19Aelin says:
J’aimerai te dire que ton lien à l’installation de SQL : unifieddb.svn.sourceforge.net/svnroot/unifieddb/Full_DB/UDB_0.9.1_Core_5057_SD2_233.rar est mort. Je suis allé sur le site est la nouvelle DB est: http://unifieddb.svn.sourceforge.net/viewvc/unifieddb/Full_DB/UDB_0.10.1_Core_5712_SD2_350.rar
jan 05, 2008, 21:23Aelin says:
Il y a un problème dans l’installation de SQL : https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/Full_DB/UDB_0.9.1_Core_5057_SD2_233.rar . Il ne marche pas. J’ai fait une recherche et j’ai vu que c’était, maintenant, http://unifieddb.svn.sourceforge.net/viewvc/unifieddb/Full_DB/UDB_0.10.1_Core_5712_SD2_350.rar . J’espère ne mettre pas trompé :)
jan 05, 2008, 21:27Adri says:
Merci, je rectifie dans l’article ;)
jan 05, 2008, 22:22Aelin says:
Bonjour,
J’ai un nouveau problème, je suis rendu ici \.create_mysql.sql dans SQL puis quand je fais \.create_mysql.sql
jan 05, 2008, 12:33sa me dit : bash: .create_mysql.sql : commande introuvable. Pouvez-vous m’aider merci
Adri says:
Autant pour moi, une coquille s’est glissée dans le tutoriel.. il faut en fait taper:
\. create_mysql.sql
syntaxe mysql:
jan 05, 2008, 16:26\. nom_du_fichier_sql_a_exécuter.sql
Rodin Pandarex says:
Bonjour. J’ai un problème lors de l’utilisation du autoreconf –install –force. le terminal me répond => autoreconf: ‘configure.ac’ or ‘configure.in’ is required
Quelqu’un a une idée ? Merci
jan 05, 2008, 20:59Rodin Pandarex says:
désolé, question stupide et résolue XD Encore désolé et merci pour le seul tuto WoW/debian compréhensible du web
jan 05, 2008, 21:07Rodin Pandarex says:
Ah si ! petite erreur. Avec l’actuelle MySQL, à cet endroit :
- Vous pouvez encore vous resservir un café :)
> use realmd
> UPDATE realmlist SET `name` = ‘LeNomDuSvr’;
il faut en fait taper :
- Vous pouvez encore vous resservir un café :)
jan 05, 2008, 23:46> use realmd
> UPDATE realmlist SET name = ‘LeNomDuSvr’;
Adri says:
merci, je rectifie ça de suite ;)
jan 05, 2008, 6:00samybzh says:
pfff je suis sur kubuntu ca le fait aussi?
jan 05, 2008, 18:20tu fais tout en ligne de code y a pas plus simple ? je viens de d arriver de windaube ca fait 2 semaine sur linux (he kel bonheur)et les lignes de code me font un peut peur j aime bien remplir des ptit cases ^^
aurais tu un pti tuto plus windobien?
merci d avance
Adri says:
Kubuntu, ça le fait aussi ;)
jan 05, 2008, 18:25Par contre pour faire plus simple… oublie de suite cette solution si elle te parais trop compliquée… tu va t’énerver dessus et perdre ton temps. Je pense que tu devrais trouver des tutos pour windows sur internet, je n’ai pas de windows chez moi donc je ne pourrais malheureusement pas t’aider, désolé :)
team27 says:
bonjour bon le tuto bien si on veux manque les depos des bas msql que trouverer ici https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/tags/
bon jai un petit soucie dans votre tuto vous dite ceci # Autres fichiers
Copiez les fichiers ‘Maps’, ‘vMAps’ et ‘DBC’ et votre serveur est prêt a être lancé ! Bon allez, puisque vous êtes gentils je vais même vous fournir un script qui vous permettra de lancer le serveur: preciser a quel endroit maitre ses fichier
jan 05, 2008, 9:25Adri says:
Les fichiers Maps, vMaps et DBC doivents être placé a la racine du dossier de mangos.
Attention à respecter les Majuscules.. linux étant case-sensitive :)
jan 05, 2008, 11:05samybzh says:
je ne demande pas un tuto windaube ca y en as plein, mais un tuto pour kubuntu avec beaucoup moins de ligne de commande plus axe windows (remplir des ptites case lol)
jan 05, 2008, 16:07merci d avance
Adri says:
Malheureusement, là je ne peut rien pour toi ;)
jan 05, 2008, 20:23samybzh says:
bon c po grave je vais essayer avec les lignes de code souhaitez moi bonne chance :p
jan 05, 2008, 11:35exphoenix says:
Bonjour ,
J’ai un petit problème avec cette commande : autoreconf –install –force , lorsque je l’écrit je reçoit cette erreur : configure.ac:35: error: possibly undefined macro: AC_PROG_LIBTOOL
jan 05, 2008, 16:30If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
J’ai déjà essayé de recommencer l’installation mais rien a faire =/ .
Merci d’avances pour vos réponses =)
Laurent says:
Apparement j’ai le même problême que exphoenix …
laurent@laurent-desktop:~/sources/mangos/trunk$ autoreconf –install –force
jan 05, 2008, 16:29configure.ac:35: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
laurent@laurent-desktop:~/sources/mangos/trunk$
Laurent says:
J’ai trouver la solution tout seul comme un grand il fallait installer libtool .
jan 05, 2008, 17:46Adri says:
Merci pour lui :)
jan 05, 2008, 18:17exphoenix says:
Merci à toi =)
jan 05, 2008, 19:12Swich says:
configure.ac:4752: warning: AC_DEFINE: not an identifier:
configure.ac:4752: the top level
configure.ac:4783: warning: AC_DEFINE: not an identifier:
configure.ac:4783: the top level
autoheader: warning: missing template:
autoheader: Use AC_DEFINE([], [], [Description])
autoreconf: /usr/bin/autoheader failed with exit status: 1
root@xxxxxx:/home/wowsvr/mangos/trunk#
voilà ce qui est marqué lorsque je fais un
# autoreconf –install –force
et au final, après le gros paquet que tu nous donne à faire (c'est à dire ça :)
# autoreconf –install –force
# autoconf
# automake src/bindings/scriptdev2/Makefile
# automake src/bindings/scriptdev2/sql/Makefile
# automake src/bindings/scriptdev2/sql/Updates/Makefile
# ./configure –prefix=/home/wowsvr/mangos –sysconfdir=/home/wowsvr/mangos/etc –with-python –enable-cli –enable-ra –datadir=/home/wowsvr/mangos
ça ne fonctionne pas, j'ai une erreur sur le ./configure… et je pense que ça vient de ce que je t'ai copié/coller plus haut
jan 05, 2008, 20:41azerta says:
salut*
jan 05, 2008, 21:24ce tuto est a quelle version client la 3.0.3 la 2.4.3
ou esque on peux maitre ce tuto a la dernier version de wow a la 3.3.0 parce que j ao vmaps et maps et dbc en 3.3.0 mais pour mangos
enfait j aimeuré bien faire mon serveur wow en 3.3.0 sous linux
azerta says:
salut*
jan 05, 2008, 21:27on peux maitre ce tuto a la 3.3.0 parce que j ai les mise a jour 3.3.0 j ai vmpas et maps et dbc en 3.3.0 mais j ai pas le core en 3.3.0 sous linux
Tony says:
Bonsoir,
Je vous contact déjà pour dire, merci pour ce tuto. Je suis en trein d'essayer d'installer le serv mais aux niveaux de la deuxième compilation, c'est a dire ici :
# cd src/bindings/scriptdev2
# make
# make install
J'ai du pour information créer ce répertoire : "objdir" autrement lors de la première compilation sa planter. Quand je fait la deuxième compilation sa me met sa :
"../../../src/tools/genrevision/genrevision ../../../../src/bindings/scriptdev2
make: ../../../src/tools/genrevision/genrevision : commande introuvable
make: *** [revision.h] Erreur 127"
Quelqu'un aurait-il une idée ?
Merci d'avance.
Cordialement
jan 05, 2008, 22:36Maginoir says:
Bonjour, avec des collègues on a créer le serv est on sur le net no souci, par contre on cherche des scripts pour mettre a jour les dj et raids, est ce ke vous pouvez m'aider svp?
jan 05, 2008, 23:58MetalMan says:
Bonjour,j'ai un problème avec la compilation.Je ne suis pas très fort dans ce domaine là donc j'ai besoin d'aide…
jan 05, 2008, 9:47je tape make (en étant loggé en root) et ça me donne sa:
make: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.
j'ai vérifié le fichier configure.ac il contient bien les bons truc
aurais-je mal configuré quelque chose?
Bud says:
Merci pour ce très bon tuto.
Cependant j'ai également eu le même problème que Tony:
Please configure and build in a directory other than the
top-level source directory. This is needed because a lot
of maintainers tend to break parallel build trees
(a.k.a. VPATH builds). This is kinda real ensurance they
will not do it (by enforcing everybody to do VPATH builds).
For example, try the following from the top-level source
directory:
mkdir objdir
cd objdir
../configure
make
This will create a build space in the directory `objdir' and
start a build in that directory.
If however you realy want to disable this error,
use –enable-maintainer-mode switch.
J'ai du créer un dossier pour séparer la config et la compilation du dossier source.
Scriptdev2 ne veut pas non plus se compiler…
jan 05, 2008, 20:32olivier says:
Bonjour, moi je me retrouve avec cette erreur lors du ./configure … quelqu'un saurait comment je peux m'y prendre ?
lbbam:/home/wowsvr/mangos/trunk# ./configure –prefix=/home/wowsvr/mangos –sysconfdir=/home/wowsvr/mangos/etc –with-python –enable-cli –enable-ra –datadir=/home/wowsvr/mangos
jan 05, 2008, 2:48checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… /bin/mkdir -p
checking for gawk… no
checking for mawk… mawk
checking whether make sets $(MAKE)… yes
checking how to create a pax tar archive… gnutar
checking whether to enable maintainer-specific portions of Makefiles… no
olivier says:
suite :
configure: error:
Please configure and build in a directory other than the
top-level source directory. This is needed because a lot
of maintainers tend to break parallel build trees
(a.k.a. VPATH builds). This is kinda real ensurance they
will not do it (by enforcing everybody to do VPATH builds).
For example, try the following from the top-level source
directory:
mkdir objdir
cd objdir
../configure
make
This will create a build space in the directory `objdir' and
start a build in that directory.
If however you realy want to disable this error,
jan 05, 2008, 2:49use –enable-maintainer-mode switch.
Bud says:
C'est ce que j'ai expliqué plus haut. Il faut creer un dossier et procéder comme suite :
mkdir objdir
jan 05, 2008, 18:51cd objdir
../configure –prefix=/home/wowsvr/mangos –sysconfdir=/home/wowsvr/mangos/etc –with-python –enable-cli –enable-ra –datadir=/home/wowsvr/mangos
make
jean-pierre says:
ormi que la moitier des telechargement indiquer ne marche pas :P c bien expliquer j'ai passer toute la nuit a chercher comment créer un serveur privé mais les maps et les pack ne marche pas son introuvable sur tous les sites indiquer :( je ne pourrai jamais crée mon serv
jan 05, 2008, 3:20