Kompilacja oraz Instalacja MaNGOS (Linux) + WWW

Zaczęty przez Nolt, Luty 07, 2007, 15:18:36 PM

« poprzedni - następny »

0 użytkowników i 1 Gość przegląda ten wątek.

Nolt

Kompilacja serwera MaNGOS

Wymagane pakiety i biblioteki do kompilacji:

  • build-essential (dla użytkowników debiana)
  • GCC 3.3 lub wersje wyższe
  • make
  • libtool
  • automake
  • autoconf
  • glibc & glibc-dev
  • mysql-server5.x
  • libmysql++-dev
  • OpenSSL
  • libssl-dev
  • zlibc
  • subversion
  • git
  • git-core
  • script

Po pobraniu i zainstalowaniu w/w pakietów wydajemy kolejno następujące komendy w terminalu:
update-alternatives --config git
/usr/bin/git-scm

Tworzymy np. w katalogu domowym folder do którego pobierzemy kod źródłowy MaNGOS'a:
mkdir /home/nazwa_uzytkownika/mangos
cd /home/nazwa_uzytkownika/mangos

i wydajemy następujące polecenie w terminalu:
git clone git://github.com/mangos/mangos.git

Kolejną rzeczą jaką musimy zrobić to pobranie kodu źródłowego ScriptDev2, na początku musimy utworzyć katalog ScriptDev2 w katalogu mangos/src/bindings/ tak. Dalej pobieramy ScriptDev2 oraz dodajemy patch. Powyższe czynności wykonamy za pomocą następujących komend (odpowiednio w kolejności):
mkdir src/bindings/ScriptDev2
svn co https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/ src/bindings/ScriptDev2
git apply src/bindings/ScriptDev2/patches/MaNGOS-2008-12-22-ScriptDev2.patch

UWAGA: w tym miejscu musimy poprawić miejsce gdzie pobrał nam się kod SD2.
Wchodzimy do katalogu src/bindings/ScriptDev2 i tutaj widzimy iż kod SD2 jest w dodatkowym folderze scriptdev2 (wielkość liter ma znaczenie!!!). Wchodzimy do katalogu scriptdev2 zaznaczamy cały kod źródłowy i wklejamy go do katalogu wyższego ScriptDev2.

W terminalu wchodzimy do katalogu naszego kodu źródłowego MaNGOS:
cd /home/nazwa_uzytkownika/mangos
i wykonujemy kolejno następujące komendy:
autoreconf --install --force
aclocal
autoheader
autoconf
automake --add-missing
automake src/bindings/ScriptDev2/Makefile
mkdir objdir
cd objdir
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
make
make install
make clean
cd ..
rm -r objdir


UWAGA: Ścieżki w tej komendzie
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
możemy zmienić na własne np.
../configure --prefix=/home/nazwa_uzytkownika/serwer --sysconfdir=/home/nazwa_uzytkownika/serwer/etc --enable-cli --enable-ra --datadir=/home/nazwa_uzytkownika/serwer

Jeśli wszystko dobrze zrobiliśmy, MaNGOS powinien skompilować się bez żadnych błędów.

Instalacja oraz konfiguracja serwera MaNGOS: (wymagany zaktualizowany klient do wersji 3.0.3)

UWAGA: Jeśli aktualizujemy serwer z wersji 2.4.3 wystarczy tylko wypakować ponownie pliki DBC, mapy i vmapy.

Wymagane oprogramowanie:


Instalacja ManGOS:
Tworzymy folder (standardowo ten) /opt/mangos (pamiętaj o przeczytaniu pliku README który znajduje się wraz z plikami binarnymi, gdyż folder instalacyjny może się różnić od tego podanego przeze mnie)
Wypakowujemy BIN, ETC, LIB, MANGOS do /opt/mangos (j/w)
Utwórz folder /opt/mangos/maps (j/w)
Utwórz folder /opt/mangos/dbc (j/w)

Instalacja MySQL
Ściągnij i zainstaluj paczkę MySQL zgodna z twoja dystrybucja i w miarę najnowsza.
W celu łatwego dostępu do MySQL (zmiany hasła lub wprowadzenia zmian/małych aktualizacji aktualizacji-ale nie importowania dużych plików jak pełne bazy) polecam phpMyAdmin.

Uwaga: standardowo MYSQL dostęp użytkownika: root i hasło: <<puste>>, chyba tylko dla localhost

Instalacja bazy danych

Tworzymy 4 bazy "mangos", "characters", "realmd" i scriptdev2, następnie otwieramy terminal (konsolę) otwieramy katalog z naszą bazą (np cd ~/Desktop/baza) i importujemy nasze bazy wydając te komendy:
mysql --user=nazwa_użytkownika --password=hasło mangos < nazwa_bazy.sql (baza mangos)
mysql --user=nazwa_użytkownika --password=hasło characters < characters.sql (baza characters)
mysql --user=nazwa_użytkownika --password=hasło realmd < realmd.sql (baza realmd)
mysql --user=nazwa_użytkownika --password=hasło scriptdev2 < scriptdev2_structure.sql, scriptdev2_script_texts.sql (baza scriptdev2)
(nazwa_użytkownika oraz hasło zmieniamy na swoje dane, czyli login i hasło do bazy mysql)
Importowanie baz może zając jakiś czas więc czekajcie cierpliwie :P (szczególnie baza mangos)
Do bazy mangos dodajemy także plik .sql znajdujące się z reguły w katalogu ScriptDev2 (mangos_full_scripts.sql).

Wypakowywanie MAP, DBC i MPQ plików z klienta:
Umieść plik ad.exe w katalogu z klientem a następnie tworzymy tam folder i odpalamy ad.exe:
cd ~/.wine/drive_c/WoW/ (w zależności gdzie zainstalowałeś klienta)
sudo mkdir maps   
wine ad.exe

Gdy ad.exe zakończy pracę wypakowujemy WinMPQ i otwieramy folder i odpalamy WinMPQ:
cd ~/.wine/drive_c/WinMPQ
wine WinMPQ.exe

Otwieramy plik locale-enGB.MPQ (znajdujący sie w katalogu Data/enGB lub Data/enUS naszego klienta), zaznaczamy wszystkie wpisy które zaczynają się z DBCFilesClient, a następnie klikamy Extract i zapisujemy je w folderze dbc (najlepiej zapisać je odrazu w folderze naszego serwera /opt/mangos/dbc). Wypakowywujemy w ten sam sposób jeszcze te pliki: patch-enGB.MPQ i patch-enGB-2.MPQ(oba pliki wypakowujemy tylko gdy używamy klientów z wersja nie kończącą się zerem np. x.x.2) (koniecznie w tej kolejności)
Kopiujemy także folder z mapami do katalogu z serwerem (/opt/mangos/maps)

Wypakowywanie vmap
(Jeśli nie posiadamy vmap w naszych plikach binarnych serwera pobieramy wszystkie pliki stąd VAMP i wklejamy pliki do katalogu vamp (/opt/mangos/vamp) jeśli nie mamy takiego folderu tworzymy go)
Uruchamiamy plik vmapextract_v2.exe (może to zająć trochę czasu w zależności od prędkości twojego komputera), tworzymy katalog vmap tam gdzie znajduje się plik vmap_assembler.exe, następnie odpalamy program vmap_assembler.exe (wine vmap_assembler.exe [ścieżka_gdzie_znajduję_się_assambler]/vmaps). Gdy program wypakuje pliki  kopiujemy folder vmaps do folderu z naszym serwerem (/opt/mangos/).

Konfiguracja mangosd, realmd, scrpitdev2 (/opt/mangos/etc):
mangosd.conf
DataDir = "/opt/mangos/"
LoginDatabaseInfo = "127.0.0.1;3306;login;haslo;realmd" (login i hasło do konta które stworzyliście w Navicat)
WorldDatabaseInfo = "127.0.0.1;3306;login;haslo;mangos"
realmd:
LoginDatabaseInfo = "127.0.0.1;3306;login;haslo;realmd"

realmd.conf

LoginDatabaseInfo = "127.0.0.1;3306;login;haslo;realmd"

scriptdev2.conf
ScriptDev2DatabaseInfo     = "127.0.0.1;3306;login;haslo;scriptdev2"

Aby odpalić serwer wydajemy te dwie komendy:
./mangos-worldd -c ../etc/mangosd.conf
./mangos-realmd -c ../etc/realmd.conf


Instalacja strony (MiniManager)
Wypakowujemy MiniManager i kopiujemy folder upload do folderu naszego serwera WWW (/var/www/htdocs). Otwieramy plik config.php znajdujący się w katalogu scripts naszej strony i konfigurujemy dostęp do baz SQL:
$realm_db = Array(
'addr' => "127.0.0.1:3306", //SQL server IP:port this realmd located on
'user' => "użytkownik", //SQL server login this realmd located on (nazwa użytkownika mysql)
'pass' => "hasło", //SQL server pass this realmd located on (hasło użytkownika mysql)
'name' => "realmd", //realmd DB name
'encoding' => "utf8" //SQL connection encoding
);
$mangos_db = Array(
1 => array( //position in array must represent realmd ID
'id' => 1, //Realm ID
'addr' => "127.0.0.1:3306", //SQL server IP:port this DB located on
'user' => "użytkonik", //SQL server login this DB located on (nazwa użytkownika mysql)
'pass' => "hasło", //SQL server pass this DB located on (hasło użytkownika mysql)
'name' => "mangos", //World Database name
'encoding' => "utf8", //SQL connection encoding
'db_rev' => "UDB rev.0.8.1" //db rev. used
),
);

$characters_db = Array(
1 => array( //position in array must represent realmd ID
'id' => 1, //Realm ID
'addr' => "127.0.0.1:3306", //SQL server IP:port this DB located on
'user' => "użytkownik", //SQL server login this DB located on (nazwa użytkownika mysql)
'pass' => "hsało", //SQL server pass this DB located on (hasło użytkownika mysql)
'name' => "characters", //Character Database name
'encoding' => "utf8", //SQL connection encoding
),          //NOTE: THIS USER MUST HAVE AT LEAST READ ACCESS ON THE WORLD DATABASE
PMIĘTAJ O KORZYSTANIU Z OPCJI SZUKAJ
nie udzielam pomocy poza forum i na PW

Nolt

Poradnik zaktualizowany do wersji klienta 2.3.3
PMIĘTAJ O KORZYSTANIU Z OPCJI SZUKAJ
nie udzielam pomocy poza forum i na PW

michal3148

#2
Witam, mam kilka pytań.

Mozesz przedstawić to jak zainstalować przez same komendy? Mam ubuntu 7.10 i dostep doniego przez ssh ...

i tu tez mam pytanie odnosnie mysql'a:
mysql --user=nazwa_użytkownika --password=hasło mangos < nazwa_bazy.sql (baza mangos) tu wgrywamy do bazy mangos pliczek nazwa_bazy.sql ... tak ?

mysql --user=nazwa_użytkownika --password=hasło mangos < characters.sql (baza characters) a tutaj do bazy mangos pliczek characters.sql? ale czy czasem już od dawna nietrzymamy characterów w bazie mangos tylko w bazie characters? kiedys tak było ale nie pamiętam dokładnie ...


możecie tez napisać jaka jest komenda do podglądu wszystkich procesów w ubuntu i do ich zamykania?

Pozdrawiam Michał

Nolt

Hej, masz rację to wymaga poprawienia, bazę characters wypakowuje się do bazy characters.
PMIĘTAJ O KORZYSTANIU Z OPCJI SZUKAJ
nie udzielam pomocy poza forum i na PW

michal3148

Witam mam problem z uruchomieniem. Uruchamiam przez putty.exe (zdalnie z innego PC)i mam pytanie.. jak uruchamiam realmd w tle (./mangos-realmd -c ../etc/realmd.conf &) nastepnie wychodze przez ctrl + C i włączam worldd (./mangos-worldd -c ../etc/mangosd.conf ) wszystko działa dobrze az nie postanowie wyłaczyć puuty, po jego wyłaczeniu serwer przestaje działać i niemoge sobie pograć? Ktoś moze mi powiedzieć jak uruchomić te 2 aplikacje i móc sie wylogować. Żeby chodziły cały czas tak jak np. mysql. Proszę o szybką odpowiedz.

michal3148


michal3148

mam problem z wypakowaniem Vmap:
Tutaj jest opis z błedami ale korzystałem z poradnika na stronie mangosa i mam takie błedy
root@MY-PC:/opt/mangos/vmap# ./vmapextract_v2.exe
Extract V2.4 2007_07_12. Beginning work ....

Game path: Data\
Scanning for locales.

Could not open data directory for reading. Aborting.

Extract wmo complete (No errors)

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
wine: Unhandled exception 0x40000015 at address 0x4226ae (thread 0009), starting debugger...
Process of pid=0008 has terminated
No process loaded, cannot execute 'echo Modules:'
Cannot get info on module while no process is loaded
No process loaded, cannot execute 'echo Threads:'
process  tid      prio (all id:s are in hex)
No process loaded, cannot execute 'detach'

Nastepnei uzywam komende:
root@MY-PC:/opt/mangos/vmap# ./vmap_assembler.exe /opt/mangos/vmap/buildings vmap
exit with errors
Co o tym myślisz? potrafisz pomóc ?

Nolt

CytujGame path: Data\
Scanning for locales.

Could not open data directory for reading. Aborting.
Jak sam widzisz problem jest ze ścieżka do folderu data, czy jesteś pewien iż dobrze wpisałeś ścieżkę ?
PMIĘTAJ O KORZYSTANIU Z OPCJI SZUKAJ
nie udzielam pomocy poza forum i na PW

michal3148

#8
no tak, ale i gdzie mam zrobic taki folder, bo niewiem juz ... nigdzie niema o tym w poradniku ...

//EDIT: i mam jeszcze jedno pytanie które chce tylko zarysować. Czemu przy kompilacji mangosa zawsze kompilacja za pierwszym razem nie wychodzi, musze kompilować 2-3 razy? wie ktoś cos na ten temat? priorytetem jest u pytanie odnośnie Vmap

Taziff

Jak wypakowuje vamps za pomoca vmapextract powstaje mi folder buildings. co z nim zrobic?? do usuniecia czy co??

Nolt

Usuwasz wszystko prócz folderu vmaps. Tylko pliki wewnątrz tego folderu będą Ci potrzebne.
PMIĘTAJ O KORZYSTANIU Z OPCJI SZUKAJ
nie udzielam pomocy poza forum i na PW

michal3148

zeby wypakowac Vmapy trzeba mieć całego zainstalowanego wowa czy wystarczą już wypakowane mapy - bo czytałem ze do zrobienia Vmap wystarcza tylko mapy ...

Nolt

Spróbuj, ja zawsze wypakowuje z pełnego klienta.
PMIĘTAJ O KORZYSTANIU Z OPCJI SZUKAJ
nie udzielam pomocy poza forum i na PW

fene

Witam mam problem z uruchomieniem. Uruchamiam przez putty.exe (zdalnie z innego PC) wpisuje w konsoli ./mangos-worldd -c ../etc/mangosd.conf i wszystko ładnie się odpala dochodzi do moment " mangos > "  i stoi . Próbowałem uruchomić proces w screen'ie  - screen -S mangos ./mangos-worldd -c ../etc/mangosd.conf ale nie wiem z jakich powodów screen sie nie zamyka dalej stoi na mangos > po tym jak sie wczyta.
Jak mam zatem odpalić drugi proces ./mangos-realmd -c ../etc/realmd.conf - bo jak dam ctrl + c to zamykam pierwszy.
Kolega michal3148  wyżej opisał że miał ten sam problem i jakoś sobie z nim poradził ale nie był łaskaw opisać jak

Nolt

Odpal drugą konsole i w niej wydaj komendę bądź zakładkę w obecnym oknie terminalu.
PMIĘTAJ O KORZYSTANIU Z OPCJI SZUKAJ
nie udzielam pomocy poza forum i na PW