Ultima modifica da un moderatore:
Premessa
Questa guida indica come installare e startare un server di metin2 nel modo corretto. Cercherò di dare indicazioni valide anche per versioni future dei vari software.
E’ vero che di guide come queste ce ne sono un’infinità solo in questa sezione, ma fanno tutte abbastanza schifo, scritte da ragazzini incompetenti che peggiorano la situazione andando ad insegnare cose sbagliate ai lettori ancora più incompetenti. Ne è la prova gli schifo di server che circolano su questo forum e le continue richieste da parte dei nuovi arrivati di una guida su come startare che vada bene.
Definizioni
Per chi è nuovo nel campo informatico, è giusto spiegare i vari termini che verranno menzionati in questa guida, che sentirete poi durante il vostro percorso di sviluppo e amministrazione del vostro server.
Server: Letteralmente significa “Servitore” cioè un componente in grado di rispondere alle richieste dei client, solitamente via rete. Nel nostro caso il game server è l’applicativo che andrete ad installare sulle vostre macchine per permettere ai vostri player di connettersi e giocare assieme in rete, ovunque essi siano. Il game server ha bisogno di appoggiarsi a database, normalmente si usa un server mysql. Avrete inoltre bisogno di un web server per ospitare il vostro sito, forum e patch.
https://it.wikipedia.org/wiki/Server
Client: Quando ci sono dei server, ci sono anche dei client. Mentre il server rende disponibile ad erogare un certo servizio, il client è quella componente che permette di collegarsi al server e ne elabora/grafica i dati trasmessi. Nel nostro caso il client del game è quel software che va installato su ogni pc dei player per permettergli di giocare.
Può sembrare strano ma anche il game server di metin2 è a sua volta un client (o meglio, utilizza un client integrato). Infatti esso si deve collegare a un server mysql per salvare o raccogliere dati.
https://it.wikipedia.org/wiki/Client
MySQL: è un RDBMS (Relational DataBase Management System) che si occupa di gestire dei database, organizzati a loro volta in tabelle formate da righe (record o tuple) e colonne (campi). E’ un software gratuito e compatibile con la maggior parte dei sistemi operativi. Permette ai software che ne fanno uso (come il game server o il sito) di leggere e scrivere dati rapidamente sfruttando meglio le risorse hardware a disposizione. Sono in grado di eseguire alcuni calcoli, per semplificare la vita agli sviluppatori. Esistono diverse Fork di MySQL, atti a perfezionare il software originale, in quanto open source. Il fork più famoso e preferito è MariaDB, destinato a sostituire MySQL di proprietà di Oracle.
https://it.wikipedia.org/wiki/MySQL
Storage Engine: I DBMS, come mysql, devono immagazzinare i dati secondo un certo ordine, per migliorarne le performance. I principali Storage Engine per MySQL sono MyISAM e InnoDB. Metin2 di default utilizza MyISAM, un vecchio storage engine sensibile ai crash e con diversi problemi, ma molto veloce in lettura. Con altri fork come MariaDB potrete trovare dei nuovi storage engine evoluti da mysql, come Aria e XtraDB che sostituiscono i sopra citati storage engine.
https://it.wikipedia.org/wiki/Storage_Engine
Query: Letteralmente significa “interrogazione”. Sono dei particolari codici che vengono utilizzati per comunicare con i DBMS. Nel caso di MySQL si tratta di Query in linguaggio SQL. Il linguaggio SQL funziona in modo simile ad un linguaggio di programmazione, e attraverso delle istruzioni chiave, permette ad un umano (programmatore o amministratore) di interagire con il DBMS per leggere e scrivere dati, ma anche per modificare la struttura dei database e del loro contenuto.
https://it.wikipedia.org/wiki/Query
C++: E’ un linguaggio di programmazione avanzato, derivato dal C. Tutti i sistemi operativi e kernel che conoscete sono scritti in C o C++. I sorgenti del game server di metin2 sono scritti in C++. Per poter eseguire applicazioni scritte in C++ è necessario compilare con appositi software, che in sostanza traducono dal linguaggio di programmazione al linguaggio macchina (composto da bit quasi illeggibili da un umano).
Lua: E’ un linguaggio di scripting, utilizzato prevalentemente nei giochi. Nel caso di Metin2, il lua è usato per creare le quest. Non è necessario compilare i codici sorgenti del lua, in quanto vengono interpretati ogni volta da un altro software, nel nostro caso il game server di metin2.
Python: Un’altro linguaggio di programmazione, ma non necessita di essere compilato in fase di deploy come il C++. Nel nostro caso, Metin2 si avvale di Python 2 per il client. Infatti nei pack trovati numerosi file .py contenenti i sorgenti in chiaro del client. Vengono interpretati dal launcher, con l’ausilio di librerie, scritto in C++ e compilato.
Shell: E’ una delle componenti principali di un sistema operativo. Vi permette di lanciare comandi per amministrare il sistema o creare alcuni script per il sistema operativo. Nel nostro caso è fondamentale, in quanto andremo ad utilizzare FreeBSD che viene gestito prevalentemente da linea di comando, attraverso appunto una shell. Ci sono diversi tipi di shell con differenti comandi e sintassi. FreeBSD di default usa la csh. Un esempio di shell script è lo script di start o stop del vostro server di metin2 (di solito).
File server: con file server solitamente si intende i file che compongono il game server di metin2, tra cui le configurazioni, le quest, localizzazione, mappe (lato server) ecc.
File game: Sono i binari, compilati dai sorgenti di metin2 scritti i C++, che andrete ad eseguire sulla vostra macchina e provvederanno ad orchestrare tutte le parti che compongono il game server. In sostanza è il cuore dei game server di metin2. Sono composti da 2 binari separati: il game e il db.
Possono essere compilati dai sorgenti.
Source: Il nome completo è Codice Sorgente e sono i sopra citati sorgenti in C++ che compongono i file game. Sono disponibili solo dalla revisione 40k, assieme ai sorgenti del client (launcher).
Macchina: Con questo termine si intende il computer fisico o virtuale, composto da sistema operativo e tutto il necessario per eseguire il vostro server di metin2 o il client.
VPS e Server Dedicati: Sono delle macchine, virtuali o fisiche che vi permettono di eseguire software, nel nostro caso andranno ad eseguire i game server, mysql e i web server. Maggiori dettagli: https://www.inforge.net/xi/threads/...gurare-una-macchina-server-per-metin2.451780/
Preparazione
Prima di procedere avrete bisogno di materiale e qualche dritta.
Avrete bisogno di:
I file server, file game, database e client solitamente vengono forniti assieme. Li potete trovare sia gratis nei vari forum, che a pagamento. Esistono diverse versioni dei file game, l’ultima disponibile al momento è la revision 40k, dei quali disponiamo anche dei sorgenti, come sopra citato. Si consiglia fortemente, in qualunque caso di utilizzare solo questa revision, se possibile con relativi sorgenti, per questione di bug, implementazioni e sicurezza.
Gratis o a pagamento? Se siete bravi a programmare e conoscete il C++, e sopratutto avete molto tempo, non è una cattiva idea partire da una base gratuita e fixare i vari bug e rimuovere falle di sicurezza. Per i restanti, se volete fare un progetto serio, è consigliabile l’acquisto di pacchetti pronti e già sbuggati da chi è competente. Scegliete con cura a chi vi affidate, perchè, sopratutto in italia, è pieno di truffatori.
Per chi vuole acquistare file già pronti, consultate la seguente lista di venditori italiani: https://www.inforge.net/xi/threads/lista-consulenti-metin2.462604/
Riguardo ai database, una sola nota. Oltre ad assicurarvi che siano compatibili con la revision scelta per i file game, verificate che vi vengano consegnati tramite dump e non datafile.
I dump sono file contenenti molte query SQL che ricostruiranno nel modo corretto, tenendo conto della versione utilizzata, sia la struttura dei database che i dati stessi. Diffidate da chi vi fornisce i datafile, cioè le cartelle sotto /var/db/mysql
https://www.inforge.net/xi/threads/...p-migrazione-restore-di-mysql-mariadb.453407/
La macchina dovrà avere alcune caratteristiche. Inanzitutto dovrà ospitare come sistema operativo FreeBSD per architetture ix86 o amd64. Utilizzate l’ultima versione disponibile di FreeBSD, che potete scaricare dal sito ufficiale. Da questo link verificare qual’è l’ultima versione di produzione disponibile https://www.freebsd.org/
Per la macchina per il server di metin2 ci sono diverse possibilità. Se dovete solo sviluppare da soli e fare qualche test in solitaria, potete usare una macchina virtuale eseguita dal vostro PC, se il vostro PC è sufficientemente potente (tanta ram e buona CPU). Quando dovrete testare con più persone o lavorate con diversi sviluppatori è consigliabile affittare un piccolo VPS o un piccolo Dedicato. Consiglio dai 2 ai 4GB di ram per i test. Mentre se dovete aprire al pubblico è utile farlo bene acquistando una buona coppia di VPS o meglio ancora di Semi-Dedicati. Alternativamente potrete optare per dei Dedicati. Vi invito a leggere questa guida per poter scegliere meglio: https://www.inforge.net/xi/threads/...igurare-una-macchina-server-per-metin2.451780
Per aiutarvi vi ho preparato una lista di provider adatti a metin2:
https://www.inforge.net/xi/threads/lista-hosting-per-metin2.460692/
Prima di proseguire vi invito a leggere la raccolta di guide e linee guida creata appositamente per iniziare nuovi progetti di metin2: https://www.inforge.net/xi/threads/raccolta-come-creare-un-progetto-di-metin2.467749/
Creazione macchina virtuale
Potete creare la vostra macchina virtuale con Virtual Box, scaricando la iso del sistema operativo dal sito di freebsd: https://www.freebsd.org/where.html Consiglio di utilizzare l’architettura amd64 (64 bit), se il vostro PC la supporta, in alternativa, usate la i386 (32bit).
Create la VM e installate il sistema operativo. E’ facile e intuitivo, con diversi wizard grafici che vi guideranno. Non spendo parole su come fare questa parte, anche perchè variano per ogni versione.
Dopo aver installato la VM, va preparata per ospitare il game server.
Se siete pigri o avete qualche difficoltà, potete trovare una VM già pronta con tutto l’occorrente per eseguire il vostro game server qua: https://www.inforge.net/xi/threads/release-vm-ready-to-start-metin2-server.461269/
Installazione dipendenze
Una volta installata la VM o acquistata la VPS, Semi-dedicato o Dedicato potete procedere con l’installazione dei software e librerie necessarie.
Questa parte può essere omessa se avete scaricato/acquistato una macchina già pronta come la VM ready to start citata prima oppure macchine come nella gamma indicata qua: https://www.iltizioservice.it/index.php/it/hosting2/vps-metin2
1.Creazione utenza applicativa
E’ buona norma per i sistemi *nix come FreeBSD dedicare un utenza all’applicativo, per una più facile gestione.
Io di solito la chiamo mt2, ma potete dargli il nome che volete.
2. Installazione MySQL/MariaDB
I server di metin2 necessitano di immagazzinare i dati di gioco e di reperirli rapidamente. Ai tempi hanno scelto MySQL per questo compito. Per fortuna MySQL è ancora ben supportato e molto utilizzato anche per nuove installazioni. Inoltre è gratuito e di facile utilizzo.
L’originale MySQL di Oracle, tuttavia, è rimasto un po’ indietro su alcuni aspetti. Per questo motivo sono stati creati diversi fork di MySQL, anche dagli stessi sviluppatori di MySQL, come nel caso di MariaDB.
Consiglio quindi di utilizzare MariaDB come dbms per il vostro server, ma potete comunque usare lo stesso il classico MySQL. Ricordatevi però di scegliere sempre l’ultima versione disponibile del software. Diffidate da chi vi dice di installare vecchie versioni di MySQL o MariaDB.
Maggiori informazioni su MariaDB: https://www.inforge.net/xi/threads/installare-mariadb-al-posto-di-mysql.452196/
Riporto la sola parte di installazione del software:
Attualmente l’ultima versione di MariaDB è la 10.1, ma assicuratevi di installare l’ultima versione disponibile.
Installazione Metin2
Ora che il vostro sistema è pronto per ospitare il vostro server di metin2, possiamo procedere finalmente con l’installazione dei database e file di metin2.
1. Import databases
Questa parte è molto variabile a seconda di come sono stati fatti i dump dei database.
Per importare i database da dei file dump, avete più opzioni:
Una volta importati tutti i database applicativi, potete procedere a settare i permessi dell’utenza mysql applicativa dedicata a metin2 (quella che prima ho chiamato game).
Aiutatevi con Navicat per questa parte, altrimenti consultate la documentazione ufficiale di mysql per la gestione dei permessi (GRANT).
2. Installazione file metin2
Anche qui dipende da come vi sono stati forniti i file, ma solitamente il procedimento è questo:
Ora c’è una parte che per molti può risultare complicata. Vi spiego un metodo rapido e abbastanza pulito per trovare e installare le librerie mancanti.
Ora verificare le librerie necessarie mancanti per eseguire i binari game e db. Localizzare i due binari e eseguire il seguente comando:
Dove game è il file binario da controllare (game e db)
Se non restituisce output significa che è tutto apposto, altrimenti dovete procurarvi le librerie mancanti e installarle sul vostro sistema. Ricordatevi della differenza tra 32bit e 64.
Per verificare se il binario è compilato come eseguibile 32bit o 64bit lanciare questo comando:
Dove game è il percorso del binario (game o db).
Con questo comando inoltre vedete da quale sistema è stato compilato (versione di FreeBSD) che vi servirà per installare le librerie di compatibilità.
Le librerie 32bit andranno installate in /usr/local/lib32 o /usr/lib32, mentre le 64 bit in /usr/local/lib o /usr/lib
Non sostituite MAI le lib, se ci sono già lasciatele lì.
È possibile che abbiate già alcune librerie installate, ma ad una versione diversa. Fate semplicemente un link simbolico dal file della lib che avete con il nome esatto della libreria richiesta.
ln -s lib_presente.so lib_presente.so.numeroversione
Esempio:
In questo caso vanno installate le librerie di compatibilità per i sistemi della versione 9.x, se non l’avete già fatto:
Riprovare quindi con il comando ldd di prima per vedere se ha installato le librerie corrette.
Se ancora non è sufficiente dovrete trovare la libreria, 32 bit in questo caso, e installarla nella cartella /usr/local/lib32
Le librerie più comuni 32bit ve le ho raccolte qua, e le potete installare facilmente così:
Lanciate solo i comandi riguardanti le lib mancanti. Non sostituite MAI le lib.
Se il comando ldd non trova altre librerie mancanti dovreste poter avviare il vostro server di metin2!
4. Start
L’avvio dipende dai file che avete installato. Solitamente sono presenti degli script per lo start/stop guidato. Eseguiteli sempre con l’utenza applicativa creata in precedenza.
Esempio:
5. Setup client
Ora non vi rimane altro che configurare il client, secondo le istruzioni fornitevi da chi vi ha dato il materiale. Solitamente c’è ma modificare il file serverinfo.py, presente nella pack root.
Dovrete impostare l’ip del vostro server e le relative porte, che trovate nei file di configurazione:
Troubleshooting
In caso di problemi analizzate i vari log dell’applicativo e mysql e cercate gli errori su google per trovare le soluzioni proposte. Siete fortunati che metin2
Nel caso aprite un thread nella sezione corrispondente su inforge, inserendo tutte le informazioni necessarie.
Questa guida indica come installare e startare un server di metin2 nel modo corretto. Cercherò di dare indicazioni valide anche per versioni future dei vari software.
E’ vero che di guide come queste ce ne sono un’infinità solo in questa sezione, ma fanno tutte abbastanza schifo, scritte da ragazzini incompetenti che peggiorano la situazione andando ad insegnare cose sbagliate ai lettori ancora più incompetenti. Ne è la prova gli schifo di server che circolano su questo forum e le continue richieste da parte dei nuovi arrivati di una guida su come startare che vada bene.
Definizioni
Per chi è nuovo nel campo informatico, è giusto spiegare i vari termini che verranno menzionati in questa guida, che sentirete poi durante il vostro percorso di sviluppo e amministrazione del vostro server.
Server: Letteralmente significa “Servitore” cioè un componente in grado di rispondere alle richieste dei client, solitamente via rete. Nel nostro caso il game server è l’applicativo che andrete ad installare sulle vostre macchine per permettere ai vostri player di connettersi e giocare assieme in rete, ovunque essi siano. Il game server ha bisogno di appoggiarsi a database, normalmente si usa un server mysql. Avrete inoltre bisogno di un web server per ospitare il vostro sito, forum e patch.
https://it.wikipedia.org/wiki/Server
Client: Quando ci sono dei server, ci sono anche dei client. Mentre il server rende disponibile ad erogare un certo servizio, il client è quella componente che permette di collegarsi al server e ne elabora/grafica i dati trasmessi. Nel nostro caso il client del game è quel software che va installato su ogni pc dei player per permettergli di giocare.
Può sembrare strano ma anche il game server di metin2 è a sua volta un client (o meglio, utilizza un client integrato). Infatti esso si deve collegare a un server mysql per salvare o raccogliere dati.
https://it.wikipedia.org/wiki/Client
MySQL: è un RDBMS (Relational DataBase Management System) che si occupa di gestire dei database, organizzati a loro volta in tabelle formate da righe (record o tuple) e colonne (campi). E’ un software gratuito e compatibile con la maggior parte dei sistemi operativi. Permette ai software che ne fanno uso (come il game server o il sito) di leggere e scrivere dati rapidamente sfruttando meglio le risorse hardware a disposizione. Sono in grado di eseguire alcuni calcoli, per semplificare la vita agli sviluppatori. Esistono diverse Fork di MySQL, atti a perfezionare il software originale, in quanto open source. Il fork più famoso e preferito è MariaDB, destinato a sostituire MySQL di proprietà di Oracle.
https://it.wikipedia.org/wiki/MySQL
Storage Engine: I DBMS, come mysql, devono immagazzinare i dati secondo un certo ordine, per migliorarne le performance. I principali Storage Engine per MySQL sono MyISAM e InnoDB. Metin2 di default utilizza MyISAM, un vecchio storage engine sensibile ai crash e con diversi problemi, ma molto veloce in lettura. Con altri fork come MariaDB potrete trovare dei nuovi storage engine evoluti da mysql, come Aria e XtraDB che sostituiscono i sopra citati storage engine.
https://it.wikipedia.org/wiki/Storage_Engine
Query: Letteralmente significa “interrogazione”. Sono dei particolari codici che vengono utilizzati per comunicare con i DBMS. Nel caso di MySQL si tratta di Query in linguaggio SQL. Il linguaggio SQL funziona in modo simile ad un linguaggio di programmazione, e attraverso delle istruzioni chiave, permette ad un umano (programmatore o amministratore) di interagire con il DBMS per leggere e scrivere dati, ma anche per modificare la struttura dei database e del loro contenuto.
https://it.wikipedia.org/wiki/Query
C++: E’ un linguaggio di programmazione avanzato, derivato dal C. Tutti i sistemi operativi e kernel che conoscete sono scritti in C o C++. I sorgenti del game server di metin2 sono scritti in C++. Per poter eseguire applicazioni scritte in C++ è necessario compilare con appositi software, che in sostanza traducono dal linguaggio di programmazione al linguaggio macchina (composto da bit quasi illeggibili da un umano).
Lua: E’ un linguaggio di scripting, utilizzato prevalentemente nei giochi. Nel caso di Metin2, il lua è usato per creare le quest. Non è necessario compilare i codici sorgenti del lua, in quanto vengono interpretati ogni volta da un altro software, nel nostro caso il game server di metin2.
Python: Un’altro linguaggio di programmazione, ma non necessita di essere compilato in fase di deploy come il C++. Nel nostro caso, Metin2 si avvale di Python 2 per il client. Infatti nei pack trovati numerosi file .py contenenti i sorgenti in chiaro del client. Vengono interpretati dal launcher, con l’ausilio di librerie, scritto in C++ e compilato.
Shell: E’ una delle componenti principali di un sistema operativo. Vi permette di lanciare comandi per amministrare il sistema o creare alcuni script per il sistema operativo. Nel nostro caso è fondamentale, in quanto andremo ad utilizzare FreeBSD che viene gestito prevalentemente da linea di comando, attraverso appunto una shell. Ci sono diversi tipi di shell con differenti comandi e sintassi. FreeBSD di default usa la csh. Un esempio di shell script è lo script di start o stop del vostro server di metin2 (di solito).
File server: con file server solitamente si intende i file che compongono il game server di metin2, tra cui le configurazioni, le quest, localizzazione, mappe (lato server) ecc.
File game: Sono i binari, compilati dai sorgenti di metin2 scritti i C++, che andrete ad eseguire sulla vostra macchina e provvederanno ad orchestrare tutte le parti che compongono il game server. In sostanza è il cuore dei game server di metin2. Sono composti da 2 binari separati: il game e il db.
Possono essere compilati dai sorgenti.
Source: Il nome completo è Codice Sorgente e sono i sopra citati sorgenti in C++ che compongono i file game. Sono disponibili solo dalla revisione 40k, assieme ai sorgenti del client (launcher).
Macchina: Con questo termine si intende il computer fisico o virtuale, composto da sistema operativo e tutto il necessario per eseguire il vostro server di metin2 o il client.
VPS e Server Dedicati: Sono delle macchine, virtuali o fisiche che vi permettono di eseguire software, nel nostro caso andranno ad eseguire i game server, mysql e i web server. Maggiori dettagli: https://www.inforge.net/xi/threads/...gurare-una-macchina-server-per-metin2.451780/
Preparazione
Prima di procedere avrete bisogno di materiale e qualche dritta.
Avrete bisogno di:
- File server
- File game
- Databases
- Client
- Macchina
- Cervello
- Pazienza
I file server, file game, database e client solitamente vengono forniti assieme. Li potete trovare sia gratis nei vari forum, che a pagamento. Esistono diverse versioni dei file game, l’ultima disponibile al momento è la revision 40k, dei quali disponiamo anche dei sorgenti, come sopra citato. Si consiglia fortemente, in qualunque caso di utilizzare solo questa revision, se possibile con relativi sorgenti, per questione di bug, implementazioni e sicurezza.
Gratis o a pagamento? Se siete bravi a programmare e conoscete il C++, e sopratutto avete molto tempo, non è una cattiva idea partire da una base gratuita e fixare i vari bug e rimuovere falle di sicurezza. Per i restanti, se volete fare un progetto serio, è consigliabile l’acquisto di pacchetti pronti e già sbuggati da chi è competente. Scegliete con cura a chi vi affidate, perchè, sopratutto in italia, è pieno di truffatori.
Per chi vuole acquistare file già pronti, consultate la seguente lista di venditori italiani: https://www.inforge.net/xi/threads/lista-consulenti-metin2.462604/
Riguardo ai database, una sola nota. Oltre ad assicurarvi che siano compatibili con la revision scelta per i file game, verificate che vi vengano consegnati tramite dump e non datafile.
I dump sono file contenenti molte query SQL che ricostruiranno nel modo corretto, tenendo conto della versione utilizzata, sia la struttura dei database che i dati stessi. Diffidate da chi vi fornisce i datafile, cioè le cartelle sotto /var/db/mysql
https://www.inforge.net/xi/threads/...p-migrazione-restore-di-mysql-mariadb.453407/
La macchina dovrà avere alcune caratteristiche. Inanzitutto dovrà ospitare come sistema operativo FreeBSD per architetture ix86 o amd64. Utilizzate l’ultima versione disponibile di FreeBSD, che potete scaricare dal sito ufficiale. Da questo link verificare qual’è l’ultima versione di produzione disponibile https://www.freebsd.org/
Per la macchina per il server di metin2 ci sono diverse possibilità. Se dovete solo sviluppare da soli e fare qualche test in solitaria, potete usare una macchina virtuale eseguita dal vostro PC, se il vostro PC è sufficientemente potente (tanta ram e buona CPU). Quando dovrete testare con più persone o lavorate con diversi sviluppatori è consigliabile affittare un piccolo VPS o un piccolo Dedicato. Consiglio dai 2 ai 4GB di ram per i test. Mentre se dovete aprire al pubblico è utile farlo bene acquistando una buona coppia di VPS o meglio ancora di Semi-Dedicati. Alternativamente potrete optare per dei Dedicati. Vi invito a leggere questa guida per poter scegliere meglio: https://www.inforge.net/xi/threads/...igurare-una-macchina-server-per-metin2.451780
Per aiutarvi vi ho preparato una lista di provider adatti a metin2:
https://www.inforge.net/xi/threads/lista-hosting-per-metin2.460692/
Prima di proseguire vi invito a leggere la raccolta di guide e linee guida creata appositamente per iniziare nuovi progetti di metin2: https://www.inforge.net/xi/threads/raccolta-come-creare-un-progetto-di-metin2.467749/
Creazione macchina virtuale
Potete creare la vostra macchina virtuale con Virtual Box, scaricando la iso del sistema operativo dal sito di freebsd: https://www.freebsd.org/where.html Consiglio di utilizzare l’architettura amd64 (64 bit), se il vostro PC la supporta, in alternativa, usate la i386 (32bit).
Create la VM e installate il sistema operativo. E’ facile e intuitivo, con diversi wizard grafici che vi guideranno. Non spendo parole su come fare questa parte, anche perchè variano per ogni versione.
Dopo aver installato la VM, va preparata per ospitare il game server.
Se siete pigri o avete qualche difficoltà, potete trovare una VM già pronta con tutto l’occorrente per eseguire il vostro game server qua: https://www.inforge.net/xi/threads/release-vm-ready-to-start-metin2-server.461269/
Installazione dipendenze
Una volta installata la VM o acquistata la VPS, Semi-dedicato o Dedicato potete procedere con l’installazione dei software e librerie necessarie.
Questa parte può essere omessa se avete scaricato/acquistato una macchina già pronta come la VM ready to start citata prima oppure macchine come nella gamma indicata qua: https://www.iltizioservice.it/index.php/it/hosting2/vps-metin2
1.Creazione utenza applicativa
E’ buona norma per i sistemi *nix come FreeBSD dedicare un utenza all’applicativo, per una più facile gestione.
Io di solito la chiamo mt2, ma potete dargli il nome che volete.
- Collegatevi ad una shell via SSH o console con utenza root e digitate il seguente comando:
Bash:pw useradd mt2 -g wheel -m -c “Metin2 game server” -d <base directory dei file server>
Esempio /usr/game - Per settare la password all’utenza creata, per accedere direttamente eseguire questo comando:
Bash:passwd mt2
2. Installazione MySQL/MariaDB
I server di metin2 necessitano di immagazzinare i dati di gioco e di reperirli rapidamente. Ai tempi hanno scelto MySQL per questo compito. Per fortuna MySQL è ancora ben supportato e molto utilizzato anche per nuove installazioni. Inoltre è gratuito e di facile utilizzo.
L’originale MySQL di Oracle, tuttavia, è rimasto un po’ indietro su alcuni aspetti. Per questo motivo sono stati creati diversi fork di MySQL, anche dagli stessi sviluppatori di MySQL, come nel caso di MariaDB.
Consiglio quindi di utilizzare MariaDB come dbms per il vostro server, ma potete comunque usare lo stesso il classico MySQL. Ricordatevi però di scegliere sempre l’ultima versione disponibile del software. Diffidate da chi vi dice di installare vecchie versioni di MySQL o MariaDB.
Maggiori informazioni su MariaDB: https://www.inforge.net/xi/threads/installare-mariadb-al-posto-di-mysql.452196/
Riporto la sola parte di installazione del software:
Attualmente l’ultima versione di MariaDB è la 10.1, ma assicuratevi di installare l’ultima versione disponibile.
- Aggiorna l’alberatura dei ports per installare le ultime versioni dei software:
Bash:portsnap fetch update
- Installa MariaDB all’ultima versione:
Bash:csh set VERSION=`ls -d /usr/ports/databases/mariadb*-server/ | grep -o '[0-9]\+' | sort -n | tail -1` cd /usr/ports/databases/mariadb$VERSION-server && make INNOBASE=on install clean exit
- Abilita il servizio MariaDB server e starta il servizio:
Bash:echo "mysql_enable=YES" >> /etc/rc.conf service mysql-server start
- Ora iniziamo una prima configurazione. Esegui questo comando:
Bash:mysql_secure_installation
Vi chiederà di inserire la password corrente dell’utente root, che attualmente non è impostata, quindi premete semplicemente invio.
Vi consiglio quindi di seguire la procedura guidata rimuovendo gli utenti anonimi, il database di test e ovviamente settate la password per l’utente root. - Loggatevi a MariaDB da linea di comando e create l’utente root per accesso remoto e l’utente mysql applicativo (che io ho chiamato “game”):
Bash:mysql -u root -p -e "FLUSH PRIVILEGES; CREATE USER 'root'@'%' IDENTIFIED BY 'la_tua_password'; GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ; CREATE USER 'game'@'localhost' IDENTIFIED BY 'la_tua_password'; flush privileges; "
Per maggior sicurezza, sarebbe opportuno limitare il login solo da alcuni ip. Per farlo invece di mettere % nel campo host, mettete l’ip.
Date invio e vi chiederà di inserire la vostra password di root, impostata al punto 5.
Installazione Metin2
Ora che il vostro sistema è pronto per ospitare il vostro server di metin2, possiamo procedere finalmente con l’installazione dei database e file di metin2.
1. Import databases
Questa parte è molto variabile a seconda di come sono stati fatti i dump dei database.
Per importare i database da dei file dump, avete più opzioni:
- Import da linea di comando. Qui potete caricare i vostri dump in una cartella temporanea sulla vostra nuova macchina, ad esempio via SFTP.
Ora potete usare le utility del client mysql da linea di comando. Esempio:
Bash:mysql -u root --password="La_tua_password" account < account.sql
- Import da Navicat. Navicat fa un po’ tutto. Potete anche eseguire file sql tramite interfaccia grafica:
Una volta importati tutti i database applicativi, potete procedere a settare i permessi dell’utenza mysql applicativa dedicata a metin2 (quella che prima ho chiamato game).
Aiutatevi con Navicat per questa parte, altrimenti consultate la documentazione ufficiale di mysql per la gestione dei permessi (GRANT).
- Collegatevi con Navicat al vostro server MySQL/MariaDB
- In alto a sinistra, selezionate la voce User e selezionate l’utente applicativo creato prima con doppio click.
- Recatevi nella tab privileges e impostate i permessi strettamente necessari al game.
Generalmente bastano Select, Insert, Update, Delete, Trigger.
Selezionate solo i database applicativi che avete importato prima.
2. Installazione file metin2
Anche qui dipende da come vi sono stati forniti i file, ma solitamente il procedimento è questo:
- Caricate l’archivio tar in una cartella temporanea sulla vostra macchina. Esempio mettetelo su /tmp
- Estraete l’archivio nella home directory del vostro game server con utente root.
Bash:tar -xf /tmp/<archivio> -C ~mt2
- Settate i corretti permessi ai file:
Bash:chown -R mt2:wheel ~mt2
- Trovare i vari file di CONFIG e config.txt per modificare le credenziali di autenticazione a mysql con le vostre:
Bash:csh set NEW="game password" set OLD=`find ~mt2 -type f -name 'conf.txt' | xargs grep SQL_ACCOUNT | head -1 | awk '{print $5,$6;}'` find ~mt2 -type f -name "CONFIG" -o -name "conf.txt" -exec sed -i '' "s/$OLD/$NEW/g" {} \; exit
Ora c’è una parte che per molti può risultare complicata. Vi spiego un metodo rapido e abbastanza pulito per trovare e installare le librerie mancanti.
Ora verificare le librerie necessarie mancanti per eseguire i binari game e db. Localizzare i due binari e eseguire il seguente comando:
Bash:
ldd game | grep "not found"
Se non restituisce output significa che è tutto apposto, altrimenti dovete procurarvi le librerie mancanti e installarle sul vostro sistema. Ricordatevi della differenza tra 32bit e 64.
Per verificare se il binario è compilato come eseguibile 32bit o 64bit lanciare questo comando:
Bash:
file game
Con questo comando inoltre vedete da quale sistema è stato compilato (versione di FreeBSD) che vi servirà per installare le librerie di compatibilità.
Le librerie 32bit andranno installate in /usr/local/lib32 o /usr/lib32, mentre le 64 bit in /usr/local/lib o /usr/lib
Non sostituite MAI le lib, se ci sono già lasciatele lì.
È possibile che abbiate già alcune librerie installate, ma ad una versione diversa. Fate semplicemente un link simbolico dal file della lib che avete con il nome esatto della libreria richiesta.
ln -s lib_presente.so lib_presente.so.numeroversione
Esempio:
Bash:
# ldd game | grep "not found"
libjbig.so.1 => not found (0)
libjbig.so.1 => not found (0)
# file game
game: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 9.2, stripped
Bash:
cd /usr/ports/misc/compat9x/ && make install clean
Se ancora non è sufficiente dovrete trovare la libreria, 32 bit in questo caso, e installarla nella cartella /usr/local/lib32
Le librerie più comuni 32bit ve le ho raccolte qua, e le potete installare facilmente così:
Bash:
ln -s /usr/lib32/libssl.so /usr/lib32/libssl.so.6
cd /usr/lib32
fetch http://download.iltizioservice.it/lib_metin2/lib32/libIL.so.2
fetch http://download.iltizioservice.it/lib_metin2/lib32/libjasper.so.4
fetch http://download.iltizioservice.it/lib_metin2/lib32/libjbig.so.1
fetch http://download.iltizioservice.it/lib_metin2/lib32/libjpeg.so.11
fetch http://download.iltizioservice.it/lib_metin2/lib32/liblcms.so.1
fetch http://download.iltizioservice.it/lib_metin2/lib32/libmng.so.1
fetch http://download.iltizioservice.it/lib_metin2/lib32/libmysqlclient.so.18
fetch http://download.iltizioservice.it/lib_metin2/lib32/libpng15.so.15
fetch http://download.iltizioservice.it/lib_metin2/lib32/libstdc++.so.6
fetch http://download.iltizioservice.it/lib_metin2/lib32/libtiff.so.4
Se il comando ldd non trova altre librerie mancanti dovreste poter avviare il vostro server di metin2!
4. Start
L’avvio dipende dai file che avete installato. Solitamente sono presenti degli script per lo start/stop guidato. Eseguiteli sempre con l’utenza applicativa creata in precedenza.
Esempio:
Bash:
su - mt2
./start.sh
5. Setup client
Ora non vi rimane altro che configurare il client, secondo le istruzioni fornitevi da chi vi ha dato il materiale. Solitamente c’è ma modificare il file serverinfo.py, presente nella pack root.
Dovrete impostare l’ip del vostro server e le relative porte, che trovate nei file di configurazione:
Bash:
find ~mt2 -type f -name "CONFIG"
Troubleshooting
In caso di problemi analizzate i vari log dell’applicativo e mysql e cercate gli errori su google per trovare le soluzioni proposte. Siete fortunati che metin2
Nel caso aprite un thread nella sezione corrispondente su inforge, inserendo tutte le informazioni necessarie.