IPB

Welcome Guest ( Log In | Register )



 
Closed TopicStart new topic
[GUIDE] Installer un serveur local Ragnarok Online (SQL) sous Windows, A partir de la SVN eathena
Rating 5 V
magegahell
post Apr 26 2009, 03:38 PM
Post #1


eA NOOB.


Group: eA Level 3 (Normal)
Posts: 8
Joined: 6-September 06
Member No.: 187,024



Avant-propos

Ce "guide" est une sorte de défi que je me suis auto-lancé : savoir si je pouvais installer un serveur Ragnarok Online en local, en suivant les guides existant (que ce soit sur roeathena.fr ou eathena.ws ou ailleurs).
Il en découle donc que vous n'apprendrez normalement rien de plus que dans ces guides (certains fort bien fait), mais au moins vous le feignasse, vous n'aurez pas à chercher partout...

Je considère qu'un serveur "local", même de "test" (et encore plus si "de développement") doit se rapprocher au maximum d'un "vrai" serveur en ligne.
Il doit donc être en SQL et à jour et compilé (par soi-même) à partir de la SVN (trunk, stable étant un peu à la ramasse) et sécurisé au maximum.
C'est aussi un bon entrainement en vue de l'étape suivante : l'installation d'un serveur Ragnarok Online sur en dédié.

I- Matériel requis.

- Cygwin pour la compilation, agrémenté d'une librairie mysql : http://www.cygwin.com/
- Tortoise SVN pour télécharger la SVN d'eathena (et éventuellement du Book of Ymir) : http://tortoisesvn.net/
- EasyPhp pour installer et administrer la base de données : http://www.easyphp.org/ (version 3.0, ce guide a été réalisé avec le 2.0b1)
- Savoir trouver sa propre IP LAN et se mettre en IP fixe sur son réseau local.
- Google
- Un maîtrise de l'anglais niveau scolaire.

II - Récupération de la SVN

- Téléchargez Tortoise SVN et installez-le.
- Créer un répertoire quelque-part sur votre disque-dur, qui sera le futur répertoire de votre serveur.
J'ai choisit : c:\guide\FoE (car j'ai intérieure nommé le projet Forge of Einherjar, et oui, je fais ça à fond, "comme pour un vrai").
- Faîtes un clic-droit sur le dossier et choisissez l'option "SVN checkout".
(IMG:http://www.aerth.fr/useless/svn01.png)
- Une fenêtre apparait.
(IMG:http://www.aerth.fr/useless/svn02.png)

Dans le champ "URL Repository", copier une des adresses de la SVN : http://svn.eathena.ws/svn/ea/trunk/ (pour stable, c'est http://svn.eathena.ws/svn/ea/branches/stable/ que je juge obsolète).
Voici d'autres adresses, si jamais la svn est down pour ceux incapables d'aller les chercher sur la board anglaise (ajouter trunk ou stable à la fin) :
http://eathena-project.googlecode.com/svn/ ou http://eathena.org/eathena/svn/ ou https://eathena.svn.sourceforge.net/svnroot/eathena/ ou http://ea.siriuswhite.de/ ou http://unathena.sereon.net/svn/ea/ ou http://unathena.sereon.net/svn/ea/

Dans le champ "Checkout Directory", laissez la valeur, normalement le répertoire sur lequel vous avez cliqué...
Laissez bien le "Checkout Depth" à "Fully recursive" (pour qu'il prenne tous les sous-répertoires).
Enfin, laissez le bouton "Revision" sur "HEAD revision" pour télécharger la dernière version.
Cliquez sur OK et c'est parti pour le download de la SVN.
A la fin, vous obtenez un répertoire qui contient une copie de la SVN.
Devant chaque nom de dossier/fichier, une icône indique son état par rapport à la SVN (normalement, tout devrait être vert).
(IMG:http://www.aerth.fr/useless/svn03.png)
Il faut maintenant compiler cette SVN afin d'obtenir un serveur exécutable.

III - Compilation

1°) Installation de Cygwin
Cygwin est une sorte de console d'émulation Linux (en schématisant). Entrez donc avec moi dans le monde fascinant de la ligne de commande...

Télécharger cygwin. Il s'agit d'un seul fichier setup.exe
Celui-ci servira également à l'ugrade/reconfiguration de l'installation.
Exécutez donc le setup.
Premier écran : on vous demande d'où vous souhaitez effectuer l'installation. Choisissez évidemment "Install from Internet"
(IMG:http://www.aerth.fr/useless/cygwin01.png)
Second écran : on vous demande où installer cygwin. Pour l'exemple et la facilité j'ai mis ça dans c:\cygwin.
Dans la zone "Install for", laissez bien cochez "All users".
Dans la zone "Default Text Type File", laissez bien "Unix/binary".
(IMG:http://www.aerth.fr/useless/cygwin02.png)
Troisième écran : on vous demande où seront stocké les fichiers temporaires. J'ai mis ça dans c:\utils (là où j'ai stocké également le setup.exe).
Conserver le même répertoire sera utile en cas de réinstallation/reconfiguration.
(IMG:http://www.aerth.fr/useless/cygwin03.png)
Quatrième écran : on vous demande comment vous allez downloader tout ça.
Choisissez "Direct Connection" (à moins que vous ayez une bonne raison pour pas le faire).
(IMG:http://www.aerth.fr/useless/cygwin04.png)
Cinquième écran : choisissez un site de download dans la liste. J'ai pris le premier, au pif.
(IMG:http://www.aerth.fr/useless/cygwin05.png)
Sixième écran : les choses sérieuses commencent !
On va devoir choisir les "packages" à installer dans cygwin. N'hésitez pas à passer en "plein écran" histoire de bien voir l'arborescence proposée.
Déplier déjà l'onglet "Devel".
Cherche la ligne "gcc: C compiler upgrade helper". Là, cliquez sur l'espèce de rond avec des flèches : un numéro de version et des cases devraient apparaître (n'y aller par comme un bourrin sur le rond, car il y a plein d'option qui "cyclent"). Nul besoin normalement d'y toucher, elles devraient être comme il faut de base (cf l'image ci-dessous).
Notez que ça va automatiquement activer d'autres lignes (notamment le gcc core compiler). ça tombe bien, c'était ce qu'on voulait.
(IMG:http://www.aerth.fr/useless/cygwin06.png)
Toujours dans "Devel", descendez jusqu'à trouver la ligne "make : The GNU version of 'make' utility".
Là encore cliquez sur l'espèce de rond fléché pour faire apparaître la version et les cases. Et là encore, ça va activer des dépendances...
(IMG:http://www.aerth.fr/useless/cygwin06b.png)
Maintenant, repliez l'onglet "Devel" et dépliez l'onglet "Lib".
Descendez tout en bas pour trouver la ligne "zlib : The zlib compression and decompression library".
Là encore, cliquez sur le rond pour faire apparaître le n° de version et les cases.
(IMG:http://www.aerth.fr/useless/cygwin06c.png)

New : Spécial nouvelle version Cygwin 1.7.x !
Cygwin a fait un joli saut de version, aussi les screen ne sont pas tous à jours, mefiez-vous ! Pourtant, les packages listé ci-dessus restent obligatoires. Pour zlib, en prenant le zlib: The zlib compression/decompression library (doc), cela devrait vous cocher tous ce qui faut pour zlib.

Mais c'est pas fini !
Il vous faut désormais libncurses (ah, ah, ha, la librairie maudite) :
(IMG:http://www.aerth.fr/useless/cygwin-curse.png)
Dans le doute, j'ai tout pris (mieux vaut plus que pas assez).
Ainsi que l'utilitaire termcap :
(IMG:http://www.aerth.fr/useless/cygwin-termcap.png)
Rajoutez également readline et ses librairies (uniquement pour palier à u bug de compilation de mysql, cf plus tard).
(IMG:http://www.aerth.fr/useless/cygwin-readline.png)

Ok, on a toutes nos packages/librairies pour le compilateur (gcc), make et zlib (et éventuellement/au besoin libncurses, termcap et readline).
Cliquez donc sur suivant pour lancer le téléchargement et l'installation.

2°) Rajoutons la gestion de Mysql à cygwin

D'abord, lancez cygwin que vous venez d'installer.
Une accueillante fenêtre s'ouvre.
Notez que cela créera automatiquement votre répertoire d'utilisateur dans le sous-dossier "home" de cygwin.
Donc dans mon cas, c:\cygwin\home\MageGaHell
(IMG:http://www.aerth.fr/useless/cygwin07.png)
Attention : apparemment cygwin n'aime pas les noms comportant des espaces et de caractères spéciaux. Evitez donc toute installation dans des répertoires "typiques Windows" (genre Mes documents) et n'utilisez pas un nom d'utilisateur avec des espaces/caractère spéciaux (typiquement "Nom prénom").


Astuce : copier-coller de Windows à Cigwin
Pour ce faire : copier votre truc, par exemple un des "codes" que je donne, comme d'habitude avec ctrl+c
Bouton droit dans la fenêtre de cygwin => un menu s'ouvre. Choisissez "Modifier" puis "Coller". Tadam !



Téléchargez maintenant un package Mysql : http://dev.mysql.com/downloads/mysql/5.1.html#downloads
=> Y'a maintenant un menu déroulant "Select Platform:"
=> Choisissez "Source Code".
Prenez le fichier "Generic Linux (Architecture Independent), Compressed TAR Archive" de la version en cours. J'ai donc pris mysql-5.0.77.tar.gz
Une fois ce fichier télécharger (30-35Mo environ), placez-le tel quel dans votre répertoire d'utilisateur cygwin.
Pour moi c'était donc dans c:\cygwin\home\MageGaHell\
Une fois que le fichier y est, dans la console de cygwin, tapez la ligne de commande suivante :
CODE
tar xvzf nomdufichier.tar.gz

Où "nomdufichier.tar.gz" est le nom de l'archive que vous venez de télécharger (mysql-5.0.77.tar.gz pour moi donc).
(IMG:http://www.aerth.fr/useless/cygwin08-mysl.png)
Cela décompresse l'archive, dans un sous répertoire.
Rendez-vous dans ce sous-répertoire via la commande :
CODE
cd nomdufichier

Donc, dans mon cas, cd mysql-5.0.77

Warning : pour des version postérieure de Mysql, il faut tout d'abord téléchargez le fichier ttydefaults.rar et collez le contenu du .rar dans ...\cygwin\usr\include\sys

Ensuite, tapez cette ligne de commande :
CODE
./configure --without-server

Warning : Pour la version 1.7.x de Cygwin et de version postérieure de Mysql, il faut taper ceci à la place :
CODE
./configure --without-server --without-readline CFLAGS=-O2

Ceci pour éviter une erreur de compilation dans vi.c
Attention : c'est -O2 (avec une lettre) et pas moins -02 !

(IMG:http://www.aerth.fr/useless/cygwin09-mysl.png)
Cela va checker si tout est bon et préparer la compilation... ça va donc prendre un moment...
Après ça, si tout est bon, faite un :
CODE
make all

C'est reparti pour un tour et ça va être encore plus long !
Si ça plante, c'est qu'y'a de grande chance que vous n'ayez pas installé cygwin ou le package mysql comme il faut... Vérifiez !
(IMG:http://www.aerth.fr/useless/cygwin10-mysl.png)
Après ça, faite :
CODE
make install

Et c'est reparti, cette fois c'est l'installation de mysql (avant c'était la compilation).
(IMG:http://www.aerth.fr/useless/cygwin11-mysl.png)
Voilà, mysql est installé avec cygwin... Nous allons pouvoir compilé la SVN SQL !

Si ça n'a pas marché et que vous avez des erreurs genre "make error 2".
Téléchargez le fichier ttydefaults.rar et collez le contenu du .rar dans ...\cygwin\usr\include\sys
Recommencez le ./configure puis make clean, puis make all et make install

3°) Compilation de la SVN

Toujours avec cygwin, rendez-vous dans le dossier où vous avez installé la SVN (moi c'était donc c:\guide\FoE\).
J'ai donc fait :
CODE
cd c:

CODE
cd guide

CODE
cd FoE

Une fois dans le répertoire, préparez la compilation avec :
CODE
./configure

Puis :
CODE
make clean

Et enfin :
CODE
make sql

Voilà, normalement votre SVN SQL est compilée !
(IMG:http://www.aerth.fr/useless/cygwin14.png)

Note : en cas d'erreur "No rule to make target 'sql'. Stop", essayez les lignes de commande suivante :
CODE
dos2unix configure

CODE
./configure --with-mysql

CODE
make clean

CODE
make sql

Si là encore ça ne marche pas :
CODE
dos2unix configure

CODE
./configure --with-mysql --with-pcre

CODE
make clean

CODE
make sql


4°)Le petit truc indispensable.

Si par curiosité vous lancez votre runserver-sql.bat, vous allez constater une erreur : ça va brailler et vous demander des .dll
Pas de panique, c'est normal !
Allez dans le sous-répertoire "bin" de votre cygwin (donc pour moi : c:\cygwin\bin\). Trouvez les fichiers "cygwin1.dll" et "cygz.dll".
Copiez-collez les dans le répertoire de votre SVN (donc pour moi : c:\guide\FoE\).
Voilà qui réglera ce problème... Mais c'est pas pour ça que votre serveur arrivera à tourner : il lui faut une base de données SQL et qu'il soit configuré !

IV - Installation de la base de données.

Pour ce faire, nous allons installer Easyphp (Apache&MySQL en local , en gros).
J'ai utilisé la version 1.8 ou 2.0b1, ayant eu quelques petits soucis avec la 3.0
Je ne décrirais pas l'installation, qui est basique (c'est pas cygwin ^^).

1°)Installation des bases de données (principale et log)

Une fois easyphp téléchargé et installé, lancez-le : une icône "E" noire apparaitra dans votre barre des tâches.
Double-cliquez dessus pour avoir l'état des services (Apache et MySQL) : il faut qu'il soit "Démarré" (vert).
(IMG:http://www.aerth.fr/useless/easyphp01.png)

Faîtes un clic-droit sur l'icône "E" pour faire apparaître un menu.
Choisissez "Administration". Une page (locale : http://127.0.0.1/home/ ) va s'ouvrir dans votre navigateur internet, présentant les menu d'administration.
Cliquez sur le bouton "MySQL Administration" de la ligne "phpmyadmin".
(IMG:http://www.aerth.fr/useless/easyphp02.png)

Vous arrivez sur l'interface d'administration de phpmyadmin.
Commençons par créer la première base de données.
Dans le champ "Créer une base de donnée", renseigner le nom de la future base et validez.
Peu imaginatif, j'ai mis "ragnarok" (mais vous pouvez changer).
(IMG:http://www.aerth.fr/useless/easyphp03.png)
La base va être alors créée. Mais elle est vide, il faut donc la remplir !
Une fois dans la base, cliquez sur l'onglet "Importation" (note : pour Easyphp 1.8, c'est dans l'onglet SQL).
Utilisez le bouton "Parcourir" pour aller chercher le fichier "main.sql" dans le dossier "sql-files" de votre SVN (donc pour moi : c:\guide\FoE\sql-files\main.sql).
Cliquez sur exécuter et hop, la structure "de base" est installé.
Si vous souhaitez gérer les mobs et les items via le SQL, répétez la manœuvre d'importation avec les fichier "mob_db.sql" et "items_db.sql" (pourquoi s'en priver ?).
(IMG:http://www.aerth.fr/useless/easyphp04.png)
Vous pouvez également importer "mob_db2.sql" et "items_db2.sql" si vous compter les utiliser (mob&items customs).

Bien, la base de données "principales" est prête.

Installons aussi une autre base pour les logs (oui, ils ne sont plus dans la même base).
Retournez à l'interface "centrale" (en cliquant par exemple sur le lien "Serveur:localhost").
Créez une seconde base.
Peu imaginatif, je l'ai nommé "log".
(IMG:http://www.aerth.fr/useless/easyphp05.png)
Ensuite, allez dans l'onglet "Importation" et importer le fichier "logs.sql" (toujours dans le dossier sql-files de votre SVN).
(IMG:http://www.aerth.fr/useless/easyphp06.png)
Voilà, vos bases sont prêtes ! Mais maintenant, il faut créer un (ou des) utilisateurs pour y accéder !

2°) Création d'un utilisateurs pour se connecter aux bases

Retournez à l'interface "centrale" (en cliquant par exemple sur le lien "Serveur:localhost").
Cliquez sur le lien "Privilèges".
Vous verrez tout les utilisateurs pouvant accéder à vos bases (normalement que "root" pour l'instant).
Cliquez sur "Ajouter un utilisateur".
Dans le champ "Nom d'utilisateur" le login désiré.
J'ai choisit "foe_bdd_connect".
Ensuite, à l'aide du menu déroulant, choisissez le serveur sur lequel l'utilisateur pourra ce connecter. Choisissez "Local" pour avoir "localhost".
Enfin, pour des raisons de sécurité, il faut un mot de passe compliqué.
Il y a un générateur aléatoire pour vous y aider.
J'ai choisit "qXDGUH8CGuz8_vVE" : chiffres, lettres majuscules et minuscules et caractères spéciaux : ça devrait suffire.
(IMG:http://www.aerth.fr/useless/easyphp07.png)
Le but est ici d'éviter le banal/de base "ragnarok/ragnarok" en login/password. Autant prendre de bonne habitude même en local.
Laissez tous les privilèges globaux décochés : cet utilisateur n'en a pas besoin.
Validez.

Editez à présent l'utilisateur crée pour lui ajouter des "Privilèges spécifiques à une base de données".
Choisissez la base que vous avez créée (dans mon exemple : "ragnarok").
Cochez tous les privilèges à part "GRANT".
(IMG:http://www.aerth.fr/useless/easyphp08.png)
Validez : cela donne "all privileges" à l'utilisateur sur cette base précise.
Recommencer pour la seconde base (dans mon exemple : "log").

Voilà, vous avez un utilisateurs pouvant se connecter et agir sur les 2 bases de données du serveur RO.

3°) Sécurisation des comptes et ajout d'un compte GM

Puisqu'on est là, on va renforcer la sécurité et se crée un compte GM.
Rendez-vous dans votre base principale (pour moi : "ragnarok").
Rendez-vous dans la table "login" (cliquez dessus dans le menu à gauche).
Cliquez sur l'onglet "Afficher".
Vous voyez alors que cette table contient un utilisateur, ayant pour userid (login) : s1 et comme user_pass (password) : p1.
(IMG:http://www.aerth.fr/useless/easyphp09.png)
Niveau sécurité, c'est naze, nous allons donc le modifier.
Cliquez sur l'icône "crayon" pour modifier l'enregistrement.

Modifiez donc les champs "userid" et "user_pass" (et uniquement ceux là) pour mettre quelque-chose d'un peu plus compliqué.
J'ai choisit "foe_serv_connect" comme userid.
Ensuite, j'ai mis "SlyR4_23HJoMpQ6x" comme user_pass.
(IMG:http://www.aerth.fr/useless/easyphp10.png)
Validez et voilà un compte de connexion entre serveur plus sûr...

Créons au passage un (ou des) compte administrateur (GM 99).
C'est la même table "login", ça tombe bien.
Cliquez sur l'onglet "Insérer".
Dans le champ "account_id", mettez "2000001" (c'est apparemment la tradition, mais théoriquement vous pouvez laissez ce champs vide ou mettre n'importe quoi à part 0 ou 1).
Note : En fait, il semblerait que cette valeur soit importante. eathena a apparemment une "plage" de valeurs pour les joueurs, comprise entre 2000001 et 5000000.
Dans le champ "userid", mettez le login qui vous servira à vous connecter ingame. J'ai mis : "MageGaHell".
Dans le champ "user_pass", mettez le mot de passe qui vous servira à vous connecter ingame. J'ai mis "zeugma_99b".
Note : il s'agit quand même du password du GM 99, donc faîtes compliqué (le mien est très moyen : pas assez long et pas assez diversifié et signifiant partiellement quelque-chose).
Dans le champ "sex", choisissez "M" ou "F" selon que vous voulez un compte masculin ou féminin. Ne choisissez jamais "S".
Mettez un email dans le champ "email" (facultatif).
Dans le champ "level", mettez 99 (le plus haut niveau de GM).
(IMG:http://www.aerth.fr/useless/easyphp11.png)
Laissez tout le reste vide et valider (ne tenez pas compte du second formulaire identique en dessous, il n'est là que pour permettre de faire 2 enregistrement à la fois si besoin).

Allons plus loin dans la sécurité : il n'est pas conseillé de laisser les mot de passe visible "en clair" dans la base de données.
Nous allons donc les crypter.
Pour cela, toujours quand vous êtes dans votre base principale (pour moi : "ragnarok"), cliquez sur l'onglet "Importer".
Importez le fichier "convert_passwords.sql" que vous trouverez toujours dans le dossier "sql-files" de vote SVN.
Voilà, vos mots de passes sont cryptés en md5.
(IMG:http://www.aerth.fr/useless/easyphp12.png)
Note : s'il vous prend l'envie de rajouter des comptes (GM ou autre), n'importer pas à nouveau "convert_passwords.sql" : il crypterait à nouveau tous les mots de passe, rendant les "anciens" inutilisable.
Utilisez alors cette syntaxe au cas par cas, en allant dans l'onglet SQL :
CODE
UPDATE `login` SET `user_pass`=MD5(`user_pass`) WHERE `account_id`=XXXXX;

Où XXXXX est le l'account_id du compte dont vous souhaitez crypter le mot de passe
Plus simple encore : lors de l'insertion, utilisez le menu déroulant "Fonction" et sélectionnez "MD5", en face du champ user_pass.

V - Configuration (basique) du serveur.

La base de données est prête, le serveur compilé. Plus qu'à le configurer.
Là, nous allons d'abord faire une configuration "basique" pour tester le bouzin.

1°) Liaison à la base de données SQL

Rendez-vous dans le dossier "conf" de votre SVN (donc pour moi : c:\guide\FoE\conf\).
Editez (au bloc-note) le fichier "inter_athena.conf"
Cherchez la partie "Global SQL setting"
Remplacez les identifiants de base "ragnarok"/"ragnarok" par ceux de votre utilisateurs de connexion ("foe_bdd_connect"/"qXDGUH8CGuz8_vVE" pour moi)
Mettez donc le login aux lignes sql.db_username, char_server_id, map_server_id et log_db_id.
Mettez le mot de passe aux lignes sql.db_password, char_server_pw, map_server_pw et log_db_pw.
Si vous avez changez les noms des bases de données ("ragnarok" et "log"), modifiez également en conséquence les lignes sql.db_database, char_server_db, map_server_db et log_db_db
Enregistrez.
(IMG:http://www.aerth.fr/useless/conf01.png)

2°) Connexions inter-serveurs.

C'est là qu'intervient l'utilisateur s1/p1. Qu'on a changé.
Il faut donc reporter ces changements dans le fichiers "char_athena.conf":
CODE
// Server Communication username and password.
userid: foe_serv_connect
passwd: SlyR4_23HJoMpQ6x

Et dans "map_athena.conf" :
CODE
// Interserver communication passwords, set in account.txt (or equiv.)
userid: foe_serv_connect
passwd: SlyR4_23HJoMpQ6x


Attention : si vous vous rappelez bien, nous avons crypté nos passwords utlisateurs en md5 !
Ouvrez donc le fichier "login_athena.conf" et signalez cela au serveur :
CODE
// Store passwords as MD5 hashes instead of plaintext ?
// NOTE: Will not work with clients that use <passwordencrypt>
use_MD5_passwords: yes



3°) Configuration des IPs (ultra-easy local mode)

Nous allons à présent configurer les IPs.
IP LAN, IP WAN, cela ferait presque peur, non ?
Mais dans ce point "facultatif", nous allons la jouer soft, voir ultra-soft.
Juste pour tester, car le guide est long et qu'on a quand même envie de voir tourner un peu son serveur.
Donc, c'est parti :
- Ouvrez le fichier "char_athena.conf"
Décommentez la ligne login_ip :
CODE
// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
login_ip: 127.0.0.1

Et la ligne char_ip :
CODE
// Character Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
char_ip: 127.0.0.1


- Ouvrez le fichier "map_athena.conf"
Décommentez la ligne char_ip :
CODE
// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
char_ip: 127.0.0.1

Et la ligne map_ip :
CODE
// Map Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
map_ip: 127.0.0.1


Et voilà. Oui, c'est tout.
Et oui, cela suffit à faire marcher le serveur en local.
(IMG:http://www.aerth.fr/useless/ok.png)

4°) Configuration des IPs (un peu plus sérieusement)

Bon, on va essayer de faire ça un peu mieux.
Il vous faut connaître votre IP LAN (IP locale de votre machine, personnellement c'est 192.168.1.22). Je vous fait confiance pour trouver votre propre IP et votre masque de sous-réseau vous même. Vous devez avoir une IP LAN fixe, sinon ça va être galère.
Il vous faut connaître votre IP WAN (IP de votre connexion internet, en gros). Pour moi, c'est actuellement 86.68.95.78. Comment je sais ça ? Avec google (en tapant par exemple "my ip" et en allant sur un de nombreux sites l'affichant (comme http://www.wimip.fr).
Notez que selon votre connexion internet/votre FAI cette IP change...
Vous pouvez utiliser no-ip pour arranger ça.
Pour ça allez sur http://www.no-ip.com/ et créez vous un compte.
Ensuite ajoutez un "Host" qui pointe sur votre IP WAN actuelle (86.68.95.78 pour moi). J'ai choisit mgh-foe.no-ip.org comme
Téléchargez et installez le petit logiciel de no-ip. Connectez-vous avez votre compte (avec votre mail/password).
Vous devriez voir votre "Host" : cochez-le.
Voilà, le logiciel de no-ip maintiendra à jour la liaison IP WAN/ Host.

Procédons donc à la configuration du serveur :

Ouvrez le fichier "char_athena.conf"
Décommentez la ligne login_ip :
CODE
// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
login_ip: IP LAN

IP LAN est votre IP LAN (donc pour moi 192.168.1.22).

Et la ligne char_ip :
CODE
// Character Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
char_ip: IP WAN

IP WAN est votre IP WAN ou votre no-ip. Donc pour moi soit 86.68.95.78, soit mgh-foe.no-ip.org
J'ai choisit le second.

- Ouvrez le fichier "map_athena.conf"
Décommentez la ligne char_ip :
CODE
// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
char_ip: IP LAN

IP LAN est votre IP LAN (donc pour moi 192.168.1.22).
Puis la ligne map_ip :
CODE
// Map Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
map_ip: IP WAN

IP WAN est votre IP WAN ou votre no-ip. Donc pour moi soit 86.68.95.78, soit mgh-foe.no-ip.org
J'ai choisit le second

- Ouvrez le fichier "subnet_athena.conf"
Ajoutez un subnet sur votre IP LAN
CODE
subnet: 255.255.255.0:IP LAN:IP LAN

Soit pour moi :
CODE
subnet: 255.255.255.0:192.168.1.22:192.168.1.22


Note : cela fonctionnera avec un subnet:255.0.0.0:IP LAN:IP LAN mais ce n'est pas optimum.

Voilà, c'est fait.
Lancez le runserver-sql.bat
Normalement, tout devrait être au vert.
(IMG:http://www.aerth.fr/useless/ok_no-ip.png)

5°) Petit test rapide.

Downloader un client récent d'un serveur "correct".
Créez un dossier "data" et placez-y ce sclientinfo.xml :
CODE
<?xml version="1.0" ?>
<clientinfo>
    <servicetype>korea</servicetype>
    <servertype>sakray</servertype>
    <connection>
        <desc>Mon serveur de test</desc>
        <display>Forge of Einherjar</display>
        <address>127.0.0.1</address>
        <port>6900</port>
        <version>20</version>
        <langtype>18</langtype>
    </connection>
</clientinfo>

Vous pouvez évidemment modifié un peu ce sclientinfo.xml pour le personnaliser...

Note : vous pouvez utiliser votre IP LAN dans la balise <address>
Note 2 : vous ne pouvez y utiliser votre IP WAN/NO-IP si vous êtes l'Host.


Lancez, normalement vous pourrez vous connecter à votre local.
(IMG:http://www.aerth.fr/useless/ingame01.png)
(IMG:http://www.aerth.fr/useless/ingame02.png)
(IMG:http://www.aerth.fr/useless/ingame03.png)

6°) Configuration finale du serveur.

Bon, ça tourne... Il est donc temps d'appliquer vos modifications des conf : explorer les fichiers du dossier "conf" (et autres) afin de mettre en place votre configuration (rates et autres réglages).
Vous pouvez en profiter pour mettre en place les traductions et ressources du Book Of Ymir.
Si vous vous faîtes des modifications dans les sources, il faudra recompiler le serveurs avec cygwin (voir partie III.3).

7°) Et après ?

La suite logique est de faire son propre client : vous n'allez tout de même pas rester avec un truc voler à d'autre et sortis d'on ne sait où ? De plus, il y a de grande chance que ça vous pète à la gueule...

Voilà, c'est tout pour le moment :
Reste à faire :
- correction orthographique
- un second guide centralisateur sur "comment faire son client".
- vérifier que j'ai pas raconter trop de conneries dans ce guide et attendre le retour des pros...


Changelog :
- v1.0 : guide initial
- v1.1 : ajout explication de la fonction MD5 présente dans phpmyadmin, optimisation du subnet dans subnet_athena.conf. Explication du pourquoi 2000001 comme id du premier compte joueur/GM.
- v1.2 : ajout de la solution de Solevis/Lyyn pour les problèmes de make error 2 des nouveaux package mysql. Ajout de l'avertissement sur les noms de répertoire/utilisateur pour cygwin.
- v1.3 : ajout de solutions (screens/code) pour compiler avec des versions plus récentes de cygwin (1.7.x) et Mysql
- v1.4 : ajout des adresses alternatives de la SVN (merci Kirea et le premier topic en post-it de SVN News du forum officiel). Seriously, guys... Ajout de l'astuce de copier-coller + avertissement sur le -O2 (c'est une lettre, pas 0).


This post has been edited by Flippy: Apr 11 2011, 08:32 PM
Go to the top of the page
 
+Quote Post
mr5430098
post Jul 24 2009, 11:08 AM
Post #2


Leaning eA
**

Group: eA Level 3 (Normal)
Posts: 44
Joined: 13-September 07
Member No.: 244,207



Merci beaucoup beaucoup pour ce guide SUPER bien fait. sa ma aider vraiment pour faire mon ptit serveur
Go to the top of the page
 
+Quote Post
MarcKhayle
post Apr 11 2011, 06:59 AM
Post #3


I'm half-Dieu.
Group Icon

Group: French Forum Moderators
Posts: 170
Joined: 17-August 08
From: Dieppe, France
Member No.: 269,111



Correction des accents et mise à jour du guide.
Go to the top of the page
 
+Quote Post
AeriePinkPanther
post Jun 25 2011, 09:17 AM
Post #4


Douar Nevez
Group Icon

Group: Trial French Moderators
Posts: 810
Joined: 6-July 08
From: Breizh
Member No.: 265,794



Attention, le guide n'est plus à jour pour l'étape de sélection des packages de cygwin. Vous devez faire attention lors de la sélection à en prendre plus que demandé (vérifiez bien les noms, ils se suivent en général).
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 25th April 2014 - 04:17 AM
Bridged By IpbWiki: Integration Of Invision Power Board and MediaWiki © GlobalSoft