aslain.dev
0%
← Tüm makaleler

Installation des Server Files Metin2 : Pas à Pas

L'installation des server files Metin2 est la première étape, la plus critique, qui transforme un VPS vide en un serveur de jeu fonctionnel. Dans ce guide, je détaille depuis zéro comment téléverser les fichiers sur le serveur, définir les bonnes permissions, importer les bases de données MySQL, configurer CONFIG et my.cnf, puis démarrer pour la première fois les processus db et game (core). Comme la plupart des packs de server files classiques contiennent des binaires compilés pour FreeBSD, mes exemples suivent une installation basée sur FreeBSD.

Prérequis et choix du bon système d'exploitation

Avant de commencer, assurez-vous d'avoir :

  • Un VPS avec accès root (les anciens server files exigent généralement FreeBSD et des binaires 32-bit ; choisissez la version requise par vos fichiers).
  • Un client SSH et SFTP : PuTTY + WinSCP ou FileZilla.
  • Un serveur MySQL/MariaDB (souvent inclus dans le pack ou installé via les ports).
  • Un client de base de données : HeidiSQL ou Navicat.
  • L'archive des server files (généralement un .tar.gz) et le client correspondant.

L'erreur la plus fréquente est d'utiliser une architecture d'OS incompatible avec les binaires. Vous ne pouvez pas exécuter un binaire game compilé pour FreeBSD sous Linux ; la correspondance de l'architecture et de la version est obligatoire.

Téléverser les fichiers sur le serveur

Téléverser l'archive directement sur le serveur est bien plus rapide que de transférer chaque fichier individuellement via SFTP. Connectez-vous en SSH et extrayez l'archive dans le répertoire cible :

cd /usr/home
mkdir -p metin2 && cd metin2
# Téléversez l'archive dans ce dossier avec WinSCP/FileZilla, puis :
tar -xzvf serverfiles.tar.gz

Une arborescence typique ressemble à ceci :

  • /usr/home/metin2/db/ — cœur de base de données (db core), conf.txt
  • /usr/home/metin2/game/ — cœur de jeu (game core), dossiers de canaux (channel1, channel2...)
  • /usr/home/metin2/share/ — données partagées (proto, mob, item)

Une fois le téléversement terminé, n'oubliez pas de corriger la propriété des fichiers ; si vous avez extrait en root, transférez-la à l'utilisateur qui exécutera le serveur :

chown -R metin2:metin2 /usr/home/metin2

Importer les bases de données MySQL

Metin2 utilise plusieurs bases de données. Le schéma le plus courant comprend ces quatre :

  • account — comptes et données de connexion
  • player — personnages, objets, quêtes, données de guilde
  • common — mots bannis, liste des GM, paramètres
  • log — journaux du jeu

Créez d'abord les bases vides, puis importez les dumps .sql. En ligne de commande :

mysql -u root -p -e "CREATE DATABASE account; CREATE DATABASE player; CREATE DATABASE common; CREATE DATABASE log;"
mysql -u root -p account < account.sql
mysql -u root -p player  < player.sql
mysql -u root -p common  < common.sql
mysql -u root -p log     < log.sql

Si vous préférez éviter la ligne de commande, ouvrez un tunnel SSH avec HeidiSQL ou Navicat et importez chaque fichier .sql dans la base correspondante via « Run SQL File / Execute ». Après l'import, pensez à ajouter votre propre compte comme GM dans la table common.gmlist ; sinon vous n'aurez pas accès aux commandes en jeu.

Pour créer un compte de test, insérez une ligne dans account.account. La plupart des server files stockent le mot de passe avec la fonction password() :

INSERT INTO account.account (login, password, social_id, email)
VALUES ('test', password('1234'), '1111111', 'test@local');

Configurer conf.txt, CONFIG et my.cnf

Sans paramètres réseau corrects, le client ne peut pas se connecter au serveur. Trois fichiers sont critiques.

db/conf.txt — définit comment le db core se connecte à MySQL. Modifiez le nom d'utilisateur, le mot de passe et les noms des bases selon votre installation :

SQL_ACCOUNT: localhost  account  root  MOTDEPASSE
SQL_PLAYER:  localhost  player   root  MOTDEPASSE
SQL_COMMON:  localhost  common   root  MOTDEPASSE
SQL_HOTBACKUP: localhost log     root  MOTDEPASSE
PLAYER_SQL_DIRECT: 1

game/<canal>/CONFIG — contient l'IP, le port et le numéro de canal de chaque canal. Définissez BIND_IP sur l'IP publique du VPS ; si vous laissez 127.0.0.1, personne ne pourra se connecter depuis l'extérieur :

HOSTNAME: ch1
CHANNEL: 1
BIND_IP: 11.22.33.44
PORT: 13001
P2P_PORT: 14001
DB_ADDR: 127.0.0.1
DB_PORT: 15000

my.cnf — adresse d'écoute et réglages de performance de MySQL. Si la base est locale, laissez bind-address = 127.0.0.1 ; sur les petits VPS, gardez innodb_buffer_pool_size raisonnable par rapport à votre RAM. Vérifiez aussi que l'IP/port dans le serverinfo.py du client correspond exactement au CONFIG du serveur.

Permissions et premier démarrage

Les binaires ne démarreront pas s'ils ne sont pas exécutables. Accordez le droit d'exécution aux binaires db et game :

cd /usr/home/metin2
chmod +x db/db
chmod +x game/channel1/game
# et tous les scripts de démarrage :
chmod +x *.sh

L'ordre de démarrage est important : d'abord le db core, puis le game core. Le game core ne peut pas se connecter tant que le db core n'a pas ouvert sa connexion MySQL et commencé à écouter sur son port.

# 1) démarrer le db core
cd /usr/home/metin2/db
./db &

# 2) attendre quelques secondes, puis démarrer le game core
cd /usr/home/metin2/game/channel1
./game &

Pour suivre la sortie, consultez les fichiers tail -f syserr et tail -f syslog. Vérifiez que les processus tournent réellement avec ps aux | grep -E 'db|game' et contrôlez les ports en écoute avec sockstat -4 -l. À ce stade, vous pouvez pointer votre client vers l'IP du serveur et vous connecter avec le compte de test.

Foire aux questions

Le serveur démarre mais le client ne se connecte pas, pourquoi ?

C'est presque toujours un paramètre réseau. BIND_IP dans CONFIG est peut-être encore 127.0.0.1, le serverinfo.py du client pointe vers une mauvaise IP/port, ou le pare-feu bloque des ports comme 13001/15000. Confirmez que les ports sont réellement en écoute avec sockstat -4 -l sur le serveur.

Le db core renvoie l'erreur « can't connect to MySQL ».

Le nom d'utilisateur, le mot de passe ou les noms des bases dans db/conf.txt sont incorrects. Essayez de vous connecter manuellement avec mysql -u root -p account ; si cela échoue, le problème ne vient pas du core mais de l'utilisateur MySQL ou de ses privilèges.

Des server files FreeBSD fonctionneront-ils sur mon VPS Linux ?

Non. Les binaires compilés pour FreeBSD ne s'exécutent pas directement sur un noyau Linux. Installez la version FreeBSD requise par les fichiers, ou utilisez un pack compilé pour Linux ; la correspondance de l'architecture et de la version est obligatoire.

Bloqué pendant l'installation ? Je travaille depuis des années sur l'installation des server files Metin2, l'édition de quêtes/Lua et l'optimisation des VPS. Pour monter votre serveur depuis zéro ou renforcer une installation existante, contactez-moi.

Devamı için