Jump to content

Search the Community

Showing results for tags 'linux'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Mangos Zero
    • Enhancement Requests (Zero)
    • Tasks (Zero)
  • Mangos One
    • Enhancement Requests (One)
    • Tasks (One)
  • Mangos Two
    • Enhancement Requests (Two)
    • Tasks (Two)
  • Mangos Three
    • Enhancement Requests (Three}
    • Tasks (Three)
  • Mangos Four
    • Enhancement Requests (Four)
    • Tasks (Four)
  • Mangos Five
    • Enhancement Requests (Five)
    • Tasks (Five)
  • Cross-Core
    • Bugs
    • Enhancement Requests
    • Tasks
    • Sub-Modules
    • Eluna
    • Linux
    • Windows
    • Archived Cross-Core/Other Reports
  • Others
    • Mangos VB
    • Third Party Software
    • Website
  • Bug Tracker Archives
    • Archived Reports (Zero)
    • Archived Tasks (Zero)
    • Archived Reports (One)
    • Archived Tasks (One)
    • Archived Reports (Two)
    • Archived Tasks (Two)
    • Archived Reports (Three)
    • Archived Reports (Five)

Categories

  • Development Roadmap
  • Documentation
    • Installation Guides
    • Playerbot AI
    • Standards And Practices
  • Tutorials
    • Advanced
    • Contributing to Mangos
    • Debugging
  • Reference Information
    • ClientFiles
    • Database Info
    • DBC Files
    • Other
    • Packet Info
    • Server Files
    • Server Components

Forums

  • MaNGOS Information
    • Announcements & Releases
  • Community Discussion Areas
    • Introduce Yourself
    • Community Cafe
    • Community Input
    • Community Projects
    • MaNGOS University
  • Community Help and Support
    • Peer to Peer Technical Support
    • Frequently Asked Questions
    • Resources
  • Development & Patch Submissions
    • Development
    • Patch Submissions
  • Eluna LUA Engine
    • Eluna Central
  • International Help & Support
    • International Boards
  • Archived
    • Main Archives
    • Archive of Pre-2012 Forum

Product Groups

There are no results to display.

Categories

  • Mangos Zero
  • Mangos One
  • Mangos Two
  • Mangos Three
  • Addons
    • Classic Addons
  • World Of Warcraft Patches
    • WoW Patches
    • The Burning Crusade Patches
    • Wrath of the Lich King
    • Client Tools Patchers

Blogs

  • getMaNGOS
  • DBC handling for mangos
  • The Road to Zero Release 21
  • Necrovoice's development blog.
  • What the Heck happened to Antz and MaNGOS in 2018 !!

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Core


Skype


Discord


Website URL


AIM


ICQ


Yahoo


Jabber


About Me


Gender


Location


Interests

Found 18 results

  1. With LXD you can easy take snapshots and move your server to another physical machine. Guide is fully tested on it MaNGOS Zero with bots module enabled. If you do not want to use LXD, simple pass LXD instruction and go further. Let's start LXD installation & configuration: sudo apt install lxd && reboot Reboot is needed for reloading groups that will be assigned to your account. sudo lxd init with above command anserw Y to all questions. Create container for our server: lxc launch ubuntu:bionic mangos-zero check if your container is running: lxc list +-------------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-------------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | mangos-zero | RUNNING | *.*.*.* (eth1) | | PERSISTENT | 3 | +-------------+---------+-----------------------+-----------------------------------------------+------------+-----------+ now we will connect to our container: lxc exec mangos-zero bash Please verify that you are on your contierner, you should have promt like this [email protected]:~# if not you must try again with previous command providing your container name. MaNGOS server installation Install necessary packages: apt install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev libace-6.4.5 libace-dev mysql-server We need also install additional mysql package. I've attached file in this post so you don't need to search it. Download this file and send to your container. Open another terminal window and type: lxc file push /DOWNLOADED_DIRECTORY/mysql-apt-config_0.8.14-1_all.deb mangos-zero/root/ Go back to first terminal where you are logged to your container and type: dpkg -i /root/mysql-apt-config_0.8.14-1_all.deb on installation window check mysql 5.7 is selected and hit Enter, when window will close type: apt update && apt full-upgrade -y When all packages are installed, secure your mysql installation. Please type and anserw to few questions to secure your mysql server. mysql_secure_installation Create new username and password to access our mysql server: mysql GRANT ALL ON *.* to '[email protected]'localhost' IDENTIFIED BY 'set_database_password'; Getting MaNGOS source code, compile and configuration. We will create new folder for sources: mkdir /opt/mangos && cd /opt/mangos Now we will download server and database sources to created folder. MaNGOS zero source (if you want different mangos version please change mangoszero to different repo name): git clone https://github.com/mangoszero/server.git --recursive --depth 1 Database files: git clone https://github.com/mangoszero/database.git --recursive --depth 1 Compiling MaNGOS (if your CPU have less than 4cores change -j4 to -j2 for two core CPU): cd server && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/bin/mangos && make -j4 && make install above command will create build folder, compile and install compiled server. Database installation: cd /opt/mangos/database && chmod -R +x *.sh && ./InstallDatabases.sh above command will fix script permissions and install your database. GameData files extraction: This can me done inside or outside the container, choice is yours how you do it. Remember that extraction take some time, so go take a cup of tea/coffe and cookie and wait. (ETA 1-2h) We need proper files for exctraction, go to your mangos installation and copy those files to yor game client: cd /usr/local/bin/mangos/bin/ && chmod -R +x *.sh && cp -av tools/* ExtractResources.sh MoveMapGen.sh mmap_excluded.txt offmesh.txt /GAME_CLIENT_DESTINATION now go to your game client and run: ./ExtractResources.sh Server configuration: First we have to fix path to MaNGOS configruation. We can do this in config files or simply creating a symlink. In this tutorial we will create symlink to keep defaults. cd /usr/local/bin/mangos/ && ln -s ../etc Now we have to copy config files: cd etc/ && cp -av mangosd.conf.dist mangosd.conf && cp -av realmd.conf.dist realmd.conf In realmd.conf find "LoginDatabaseInfo" and change database username and password to credentials we created before. In mangosd.conf find "LoginDatabaseInfo", "WorldDatabaseInfo", "CharacterDatabaseInfo" and change database username and password to credentials we created before. Systemd configuration: Create systemd configuration to autostart your realmd and mangosd. In LXD I recommend to run mangosd in screen, we prepare such a configuration in this tutorial. Realmd service: cat > /etc/systemd/system/realmd.service <<EOF [Unit] Description=MangosZ server After=network.target mysql.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mangos/bin/realmd -c /usr/local/bin/mangos/etc/realmd.conf WorkingDirectory=/usr/local/bin/mangos/bin/ Restart=on-abort [Install] WantedBy=multi-user.target EOF Mangosd service: cat > /etc/systemd/system/mangosd.service <<EOF [Unit] Description=MangosZ server After=network.target mysql.service [Service] Type=simple User=root #ExecStart=/usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf ExecStart=/usr/bin/screen -mdS mangosd /usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf WorkingDirectory=/usr/local/bin/mangos/bin/ PIDFile=/usr/local/bin/mangos/etc/mzero.pid RemainAfterExit=true Restart=on-abort [Install] WantedBy=multi-user.target EOF Reload systemd with: systemctl daemon-reload Enable services for autostart: systemctl enable realmd systemctl enable mangosd Start services: systemctl start realmd systemctl start mangosd Checking status of running services: systemctl status realmd systemctl status mangosd If you want to attach to mangosd console, simply type: screen -r mangosd to detach mangosd screen press keyboard combination: CTRL+A+D Update IP address in database, so you can connect to your server: mysql realmd -h localhost -u mangos -p check your values in realmlist table select address,localAddress from realmlist; +---------------+---------------+ | address | localAddress | +---------------+---------------+ | 192.168.1.180 | 192.168.1.180 | +---------------+---------------+ then update address and localAddress values with two query (replace IP_ADDRESS with yours) update realmlist set address='IP_ADDRESS'; update realmlist set localAddress='IP_ADDRESS'; Last thing is to restart both services and try to connect. At the end I wan't to share with you LXD container image, I made this tutorial based on it. Container do not include GameData so you have to extract it by yourself. MaNGOS-Zero LXD container based on Ubuntu 18.04 How to use it? Download the file and type in terminal (you must have LXD) lxc image import mangoszero-serv.tar.gz --alias mangosz-img lxc launch mangosz-img mangos-zero mysql-apt-config_0.8.14-1_all.deb
  2. Hello everyone ! After setting-up your server on a Linux-based distro, you may wonder : how to let the realmd & mangosd deamons run on your server with all consoles closed ? how to automatically restart theses daemons if they crash ? hom to restart theses dameons ? ho to get access to the daemons consoles after having closed all your terminals ? Well, you are at the right place ! PREREQUISITE : The "screen" app must be installed and also "gdb" in order to correctly dump chrash data : sudo apt install screen gdb STEP 1 : Go to a folder where you would like to install the script. STEP 2 : Create a file called wowadmin.sh. Make it executable : chmod +x wowadmin.sh STEP 3 : Paste the code below in the file and change the variables "/path/to/your/realmd" and "/path/to/your/mangosd" as your real paths to realmd and mangosd : #!/bin/bash THIS_FULLPATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd -P)/`basename "${BASH_SOURCE[0]}"` THIS_FOLDERPATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd -P) APATH=/path/to/your/realmd WPATH=/path/to/your/mangosd ASRV_BIN=realmd #This usually doesnt change. TrinityCore: authserver MaNGOS: realmd ArcEmu: whocares? WSRV_BIN_ORG=mangosd #This usually doesnt change. TrinityCore: worldserver MaNGOS: mangosd ArcEmu: whocares? WSRV_BIN=mangosd WSRV_SCR=mangosd echo "run" > gdbcommands echo "shell echo -e \"\nCRASHLOG BEGIN\n\"" >> gdbcommands echo "info program" >> gdbcommands echo "shell echo -e \"\nBACKTRACE\n\"" >> gdbcommands echo "bt" >> gdbcommands echo "shell echo -e \"\nBACKTRACE FULL\n\"" >> gdbcommands echo "bt full" >> gdbcommands echo "shell echo -e \"\nTHREADS\n\"" >> gdbcommands echo "info threads" >> gdbcommands echo "shell echo -e \"\nTHREADS BACKTRACE\n\"" >> gdbcommands echo "thread apply all bt full" >> gdbcommands DEBUG=false #WORLD FUNCTIONS startWorld() { if [ "$(screen -ls | grep $WSRV_SCR)" ] then echo $WSRV_BIN is already running else cd $WPATH screen -AmdS $WSRV_SCR $THIS_FULLPATH $WSRV_BIN $DEBUG echo $WSRV_BIN is alive fi } restartWorld() { screen -S $WSRV_SCR -X stuff "saveall$(printf \\r)" echo saved all characters, and server restart initialized screen -S $WSRV_SCR -X stuff "server restart 5$(printf \\r)" } stopWorld() { screen -S $WSRV_SCR -X stuff "saveall " echo saveall sent, waiting 5 seconds to kill $WSRV_BIN sleep 5 screen -S $WSRV_SCR -X kill &>/dev/null echo $WSRV_BIN is dead } monitorWorld() { echo press ctrl+a+d to detach from the server without shutting it down sleep 5 screen -r $WSRV_SCR } #AUTH FUNCTIONS startAuth() { if [ "$(screen -ls | grep $ASRV_BIN)" ] then echo $ASRV_BIN is already running else cd $APATH screen -AmdS $ASRV_BIN $THIS_FULLPATH $ASRV_BIN echo $ASRV_BIN is alive fi } stopAuth() { screen -S $ASRV_BIN -X kill &>/dev/null echo $ASRV_BIN is dead } restartAuth() { stopAuth startAuth echo $ASRV_BIN restarted } monitorAuth() { echo press ctrl+a+d to detach from the server without shutting it down sleep 5 screen -r $ASRV_BIN } #FUNCTION SELECTION case "$1" in $WSRV_BIN ) if [ "$2" == "true" ] then while x=1; do gdb $WPATH/$WSRV_BIN --batch -x gdbcommands | tee current NOW=$(date +"%s-%d-%m-%Y") mkdir -p $THIS_FOLDERPATH/crashes mv current $THIS_FOLDERPATH/crashes/$NOW.log &>/dev/null killall -9 $WSRV_BIN echo $NOW $WSRV_BIN stopped, restarting! | tee -a $THIS_FULLPATH.log echo crashlog available at: $THIS_FOLDERPATH/crashes/$NOW.log sleep 1 done else while x=1; do ./$WSRV_BIN NOW=$(date +"%s-%d-%m-%Y") echo $NOW $WSRV_BIN stopped, restarting! | tee -a $THIS_FULLPATH.log sleep 1 done fi ;; $ASRV_BIN ) while x=1; do ./$ASRV_BIN NOW=$(date +"%s-%d-%m-%Y") echo $NOW $ASRV_BIN stopped, restarting! | tee -a $THIS_FULLPATH.log sleep 1 done ;; "wstart" ) startWorld ;; "wdstart" ) DEBUG=true startWorld ;; "wrestart" ) restartWorld ;; "wstop" ) stopWorld ;; "wmonitor" ) monitorWorld ;; "astart" ) startAuth ;; "arestart" ) restartAuth ;; "astop" ) stopAuth ;; "amonitor" ) monitorAuth ;; "start" ) startWorld startAuth ;; "stop" ) stopWorld stopAuth ;; "restart" ) restartWorld restartAuth ;; * ) echo Your argument is invalid echo "usage: start | stop | restart | wstart | wdstart | wrestart | wstop | wmonitor | astart | arestart | astop | amonitor" exit 1 ;; esac USAGE : You can use the script with its options like : ./wowadmin.sh start Available options are : start : Starts realmd and mangosd - in a screened process. stop : Stops realmd and mangosd - in a screened process. restart : Retarts realmd and mangosd - in a screened process. wstart : Starts only mangosd - in a screened process. wdstart : Starts only mangosd in DEBUG mode - in a screened process. wrestart : Restarts only mangosd - in a screened process wstop : Stops mangosd - screened process. wmonitor : Brings back the mangosd console from the screened process (press "Ctrl+A+D" to re-detach it). astart : Starts only realmd - in a screened process. arestart : Restarts only realmd - in a screened process. astop : Stops only realmd - in a screened process. amonitor : Brings back the realmd console (press "Ctrl+A+D" to re-detach it). Moreover, when there is a crash, the daemons will auto-restart dans there will be a crashlog dumped in "crashes" directory next to your deamons executable binaries. For your information, you can see the screened processes by typing : screen -ls You can use multiple wowadmin.sh files if you manage multiple realms but the more simple would be to add specific options in the same script for your differents mangosd dameons as there could be only 1 realmd daemon running and many mangosd daemons running. Source : adapted from Lillecarl Gist
  3. I tested this on Debian 9.6 however this guide should work on any recent Debian distribution such as Ubuntu. Required Packages First we need to install all of the required programs and library's. Open up a root terminal. If your not root, enter this to become root sudo su Install the following packages apt install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev We need to grab the mysql stuff from here. Follow the instructions there. Also, choose mysql 5.7. A script needed later requires this so don't install mysql 8. Install the server with apt install mysql-server You also need to grab and compile libace. You can get it from here. Extract it and read the instructions.They're pretty straight-forward. It should be named 'ACE-INSTALL.html' or something similar. When thats done, enter this command. I highly recommend doing this even if your just keeping the server to yourself mysql_secure_installation I suggest these options: Don't use the password plugin Change the root password Remove the anonymous user Disable remote access for root Remove the test database Reload privileges Restart your system with init 6 Getting the Mangos source code Now we need the source code for mangos. Open up a terminal as root and go to the home directory: cd ~ Lets create a root directory for all of the mangos files mkdir mangos Now we clone the source code. Mangos servers above two are unstable or incomplete. Don't be surprised if something doesn't work or is missing. git clone https://github.com/mangoszero/server.git --recursive --depth 1 For the database git clone https://github.com/mangoszero/database.git --recursive --depth 1 If you want a different server(say mangos one), simply change the url. For example git clone https://github.com/mangosone/server.git --recursive --depth 1 For the mangos one server. If you want mangos two, simply do the same. Do the same with the database. Wait for the repos to be cloned (the server is about 200-250mb-ish) Compilaton The good part. Enter the mangos source directory cd server Make a new directory for the build files. mkdir build Go into it cd build Now run this to configure the makefiles cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/bin/mangos If cmake doesn't complain about anything, your good to go with compiling it. To speed up compilation, you need to know how many cores your cpu has. Most cpus have 2 or 4 cores. Search it up if your not sure. Now to compile it, simply enter this make -j2 Change -j2 to how cores you have. If you have 4 cores, change it to make -j4 If you only have one core, don't bother with the -j flag, just type in 'make' and hit enter. This will take a while depending on how fast your cpu is. Just be paitent. After a bit, mangos will be compiled(yay)and you will need to separate the needed files from the source code. To install it into your install prefix(default is /usr/local/bin/mangos), do this make install Database Setup: The Sequel Now for another database setup (i know, its crazy). This time, we will be loading some stuff into it. Enter the database folder you cloned earlier and execute InstallDatabases.sh ./InstallDatabases.sh If it says something similar to 'bash: ./InstallDatabases.sh: Permission denied', the script isn't marked as executable. Mark everything needed as executable by running this chmod -R +x *.sh Now have a go at running the script again. When execute it, you'll be brought to a menu. The defaults are fine for a new server so just press 'n' and hit enter You will have to give it your mysql details. This needs to be your server hostname(ip address), username, password and server port. The only things you need to change are the username and password. Keep in mind all of this must be done as the ROOT user. Game Data Now this is the longest part if decide to get mmaps. To run the server, you MUST extract the .dbc and .map files. To do this, copy everything in the tools folder to where your wow client is. Keep in mind the version of the client as it must be a specific version for this(mangoszero is a bit more lenient then others). You need 1.12.x (x can be any number) for mangoszero, 2.3.4 for mangosone, 3.3.5 for mangostwo(favourite), 4.3.4 for mangosthree and 5.4.1 for mangosfour. To extract the data, execute 'ExtractResources.sh' ./ExtractResources.sh Server Configuration Now to configure the server. Go to the mangos configuration folder cd /usr/local/bin/mangos/etc Copy the files to their proper name. DON'T delete them. They're a backup in case your .conf files get corrupted. cp mangosd.conf.dist mangosd.conf cp realmd.conf.dist realmd.conf Edit realmd.conf and find the line 'LoginDatabaseInfo', change the information to suit your database. For example if my database hostname is localhost or 127.0.0.1, the port is 3306, username is root, the password is mangos and my realm database is realmd, it would look like this LoginDatabaseInfo = "127.0.0.1;3306;root;mangos;realmd" Save the file and edit mangosd.conf. Look for lines, LoginDatabaseInfo, WorldDatabaseInfo and CharacterDatabaseInfo. Do the same to those lines as you did to the one in realmd.conf. You may wish to fully read mangosd.conf to fine-tune your server if you wish. Save the file. Starting the Server Now to see if your hard work has paid off. Go to where you installed the server and start realmd ./realmd Now start mangosd ./mangosd If theres a error mangosd or realmd can't fix, it'll tell you problem then exit. It will be up to fix it however. The most common problem is that the password or username is wrong. Try editing mangosd.conf or realmd.conf if thats the case. If it started and gives you a prompt, the server is loaded and awaiting a connection from a client. Starting the server with systemd This allows you to startup your computer and have mangosd and realmd load with it. Very useful on a dedicated server. We need to make 2 .service files to do this. touch /etc/systemd/system/mangosd.service touch /etc/systemd/system/realmd.service Edit mangosd.service with your preferred text editor. Don't type 'edit /etc/systemd/system/mangosd.service' unless you know how to quit vi. [Unit] Description=WoW server After=network.target mysql.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf Restart=on-abort [Install] WantedBy=multi-user.target Do the same with realmd.service [Unit] Description=WoW server After=network.target mysql.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mangos/bin/realmd -c /usr/local/bin/mangos/etc/realmd.conf Restart=on-abort [Install] WantedBy=multi-user.target Let systemd reload. systemctl daemon-reload Start realmd via systemd to see if the .service file is valid systemctl start realmd Do the same with mangosd systemctl start mangosd Check the status of both services with systemctl status realmd systemctl status mangosd If it's working, you should see something like a green OK on both daemons (fun fact: daemons and services are the same thing) then you should be good to enable them at startup. Do this for realmd systemctl enable realmd systemctl enable mangosd Restart your system init 6 Check that they started as root systemctl status realmd Do the same with mangosd If its good then mangosd and realmd will always start with your system until you disable them. Letting WoW clients connect to your server This is the 2nd last thing you need to do. This will allow WoW clients to connect to your server. We need to edit a table in the database. If you know what your doing with mysql, follow along but do the equivalent on the terminal. If you prefer doing things with a gui(graphical user interface, your using one right now!), lets install a gui mysql client. We'll use 'mysql-workbench' apt install mysql-workbench After its installed, check your start menu in 'Programming'. Start mysql workbench and click on your server. Enter your password and look on the lower left. Click on the little arrow next to realmd and scroll down to realmlist. Right click on it and click on 'Alter Table'. Go down to localAddress and double click on the '127.0.0.1'. Change this to your lan ip. You can find out your lan ip by opening a terminal and typing in ifconfig You will see about 4-5 interfaces. If your connection is a wired one, you should look at a interface named 'enp' followed by letters and numbers. For example, 'enp14s0'. Then look at the 'inet' part. This is your lan ip. Do the same if your connection is wireless or wi-fi. Wireless connections will be named like 'wlp' with some letters and numbers. 'wlp20s0' is a example. Once you have changed localAddress to your lan ip, you need to change address to your external ip. Go here to find out your ip. Now we need to let realmd know that the database has changed. Stop it with systemctl stop realmd Now start it again with systemctl start realmd Connecting a WoW client to your server Nearly there! Go to where your wow client is and look for a file named realmlist.wtf. Delete everything in this file and put the following stuff in it set realmlist 10.1.1.1 set patchlist 10.1.1.1 Change 10.1.1.1 to your server ip. It can be the lan ip if its on the same network as the server. Now for the moment of truth. Open up WoW.exe(not the launcher)and wait for it to load. Skip the cinematic if want by pressing escape(esc). Now login into the server by using administrator as the email and no password. Choose the only realm and create your character. You now have a functioning WoW server for you and your friends to play on! Also, since you logged in using the admin account, you can use game master commands. Type in the chat '.gm help' for a list of commands currently in mangos. Have fun with it!
  4. Hi. Long time lurker first time poster. I have successfully installed and run a MaNGOS Zero server on my home Ubuntu server now for just about half a year. I see there are beeing updates pushed quite often on the site but I cant find any information on how I update my installation to the latest build. Is there any documentation on how to update an existing Mangos Zero install to the latest build of Mangos Zero? I would appreciate any help
  5. Running into an issue when I try to build. I am following this guide: Noticed when it was grabbing packages like ACE and what not from .de, it would fail and skip. However, the install would push forward. I am assuming it found what it needed, but it gave more errors. Then I followed this guide: Finally, was able to get the build up to 97%, but it fails with finding -lACE. Does anyone have any tips? Scanning dependencies of target mangosd [ 97%] Building CXX object src/mangosd/CMakeFiles/mangosd.dir/AFThread.cpp.o [ 97%] Building CXX object src/mangosd/CMakeFiles/mangosd.dir/CliThread.cpp.o [ 97%] Building CXX object src/mangosd/CMakeFiles/mangosd.dir/RAThread.cpp.o [ 97%] Building CXX object src/mangosd/CMakeFiles/mangosd.dir/WorldThread.cpp.o [ 97%] Building CXX object src/mangosd/CMakeFiles/mangosd.dir/mangosd.cpp.o [ 97%] Linking CXX executable mangosd /bin/ld: cannot find -lACE collect2: error: ld returned 1 exit status make[2]: *** [src/mangosd/mangosd] Error 1 make[1]: *** [src/mangosd/CMakeFiles/mangosd.dir/all] Error 2 make: *** [all] Error 2 There was an error building MaNGOS!
  6. Building MaNGOS on Linux requires ACE libraries. I could not find information on installing those here, so I will make a short HOWTO (copied from ACE documentation) 1. Make a folder for ACE in your preferred location ( I use /opt) mkdir /opt/ace && cd /opt/ace 2. Download and unpack ACE wget http://download.dre.vanderbilt.edu/previous_versions/ACE-6.4.7.tar.gz tar -zvf ACE-6.4.7.tar.gz 3. Add needed environment variables cat >> /etc/profile <<EOF export ACE_ROOT=/opt/ace/ACE_wrappers EOF source /etc/profile 4. Add the desired headers cat > /opt/ace/ACE_wrappers/ace/config.h <<EOF #include "ace/config-linux.h" EOF cat > /opt/ace/ACE_wrappers/include/makeinclude/platform_macros.GNU <<EOF INSTALL_PREFIX = /usr/local include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU EOF 5. Build ACE cd /opt/ace/ACE_wrappers make make install 6. Add the library to the public path cat > /etc/ld.so.conf.d/ace.conf <<EOF /opt/ace/ACE_wrappers/lib EOF ldconfig -v
  7. Hello, in this tutorial, I will explain a step-by-step approach to configure, install and run Mangos on a CentOS 7 Linux system. To fully execute the installation, you need an original copy of the game client version you want to run. This guide has been fully tested on an empty CentOS 7 system with minimal installation. Let's go.. Setup the database: CentOS is supporting MariaDB instead of MySQL by default. This part of the guide will help you to setup your instance of MariaDB. Launch a terminal, and if it's not already the case, you need to become the 'root' user: sudo su - root Then, install MariaDB: yum -y install mariadb-server Once MariaDB is installed, start it: systemctl start mariadb I do advise you to add mariadb service at startup to execute it automatically: systemctl enable mariadb Let's secure your mariadb installation, execute the following command: mysql_secure_installation I advise you to setup the following parameters: Setup a Root password Remove anonymous access Disable remote access for the root user Remove the test database Reload the privileges Verify that you database configuration is working properly, you will need to provide the root password you have just defined: mysqladmin -u root -p version If everything is ok, you should have an output like the follow one: Server version 5.5.52-MariaDB Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime x sec Now that the setup of the database is done, we need to add the prerequisites for the mangos database configuration. We need to start by creating an user for mangos, login to the database using: mysql -u root -p Create the user you wish, the example given is creating an user 'mangos' who can connect from the 'localhost' and has the password 'password' (do not forget the ';') at the end: CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'password'; We then need to grant privileges to that user that we can use it later to setup the Mangos schemas (again, do not forget the ';' symbol): GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost'; Exit the terminal: quit Congratulations, you have setup the pre-requisites for the database on CentOS ! Install Mangos: We are now at the interesting part, how do we install Mangos on CentOS ? Well, assuming you are logged in as 'root', go to the home directory: cd ~ And let's install a required dependency first, wget is a small utility that will allow you to download the installer script: yum -y install wget Now, we can download our installer: wget https://raw.githubusercontent.com/mangoszero/server/master/linux/getmangos.sh Set the permissions to be allowed to execute it: chmod 700 getmangos.sh And execute it: ./getmangos.sh Before we go further, some explanations on the available activities: Install Prerequisites will install all the necessary dependencies for you to build & run mangos. Toggled by default. Set Download And Install Paths will allow you to specify where the sources must be downloaded and where the binaries must be installed. Toggled by default. Clone Source repositories will help you cloning the Mangos sources. Toggled by default. Build MaNGOS will assist you in the building process of MaNGOS. Toggled by default. Install MaNGOS will help you installing MaNGOS. Toggled by default. Install Databases will assist you in the database schemas creation. Toggled by default. Extract Resources will help you to extract the DBC, maps, mmaps and vmaps from the game client. Toggled by default. Create Code::Blocks Project File will create a project for the Code::Blocks editor. Do not toggle this option if you don't plan to edit the MaNGOS sources. Now that you know everything, let the default options selected and select 'Ok' thanks to the Tab key. The script is now installing the necessary dependencies on your CentOS. You will be prompted to provide your agreement to install the build dependencies. Select 'Yes' two times. User selection: Mangos provides you the opportunity to run it under another user than the 'root' one. This is a good practice to isolate softwares and limit the security impact in case of an exploited vulnerability. The default proposed run user is 'mangos' but you can change if you wish. Select 'Ok' to continue. If you have already performed this step, the installer will ask you whether you want to keep that user. I advise you to reply 'Yes' except if you know what you are doing. Choose WoW Release: The next screen is requesting you to choose the WoW release you are willing to install. Select the one you that fits your wish and select 'Ok'. Source-Code Path: The next screen is asking you to provide the source path. By default, the proposed format is /home/<run user>/<wow version>/src. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero/src Reply 'Yes' to create the directory if it does not exist. If it does exist and contains sources, the installer will ask you whether you want to delete the content or not. Installation Path: The next screen is asking you to provide the installation path. This is the location from where you will execute the Mangos processes. By default, the proposed format is /home/<run user>/<wow version>. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero If it does exist and contains compiled sources, the installer will ask you whether you want to delete the content or not. Clone or update MaNGOS: The next step of the script is asking you whether you want to clone, update or use an existing copy of the MaNGOS sources. For a fresh installation, select the option '0 Clone a fresh copy of MaNGOS'. The installer will now connect to Github and check the available development branch, currently, the last stable release is the Rel21 and is hosted in the 'master' branch. The installer is now cloning the server and database repositories. Build Options: You are now at the build step. Some explanations over this screen: Enable Debug will setup debug flags and more tracing on Mangos. Use this build option only if you're requested to to fix a bug. Building a software in debug mode significantly reduces its performances. Use Standard Malloc, toggle this option to use the standard memory allocation. Untoggle this option only if you know what you are doing. Use External ACE libraries. Allows you to use the ACE libraries coming from your system. There are very few cases when this option works, and also it will be removed in the future, so leave it untoggled (MaNGOS has an "internal" ACE anyway). Use PostgreSQL insteald of MySQL/MariaDB. Allows you to use another database provider than the default one. This option has not been tested and, if you have followed the tutorial so far, you should have setup MariaDB 😉 Build Client Tools will build the extractors necessary to get dbc, maps, mmaps and vmaps out of the game client. Unselect this option only if you already have these resources extracted. Use SD3 will allow you to build the ScriptDev3 Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on C++ scripts. Use Eluna will allow you to build the Eluna Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on LUA scripts. Select 'Ok' to proceed with the build process and confirm that would want to build MaNGOS. The installer is now building MaNGOS. Depending on the speed of your system, you have the time to drink a glass of water or a cup of coffee. 🙂 Installation: You will now be prompted to install Mangos. Select 'Yes' to install it. Database Operations: Wait.. another database setup ?! Yes, but this time, we are populating the database with the mangos data. You have three options here: Install clean databases to setup a fresh database Update existing databases to update your old version of the database Skip database work... but it wouldn't make sense 🙂 Select the first option if you are performing a fresh installation. You will be prompted to select your type of database. If you followed the guide so far, you should select "MariaDB". The installer will then request your database information, if you followed the guide, you need to provide the following input: Hostname: localhost Port: 3306 User: mangos Password: password You can now choose into several options: ReInstall the realm database, containing all the realms information and the accounts ReInstall the world database, containing all the world configuration ReInstall the characters database, containing all the characters information Update the realmlist to setup an initial game server By default, all options must be toggled. The installer will now perform the database import. Extract Game Data: This step will copy the extractors to the wow game location, extract dbc, maps, mmaps and vmaps and copy these extracted data to your installation directory. The installer will automatically look for a suitable WoW client into your /home directory. If it doesn't find anything, you will have to provide your game location path. If the provided path doesn't contain any game data, the installer will exit. The extractor steps allows you to select the artifacts you want to extract: DBC and Maps, which are the minimum set of data you need to extract Mmaps which are the movement maps, based on vectoriel calculation, required for an efficient pathfinding Vmaps which are the virtual maps, used for collision detection and LoS detection The Mmaps extraction is taking several hours, you will have the time to sleep or drink several coffees. 🙂 Congratulations ! You almost did it ! Still few steps to perform before you can play on your preferred game. First of all, you need to switch to your run user. If you used mangos, the command will look like: su - mangos You need then to go to the configuration directory of your installation, if you installed Vanilla, it will look like the following command: cd /home/mangos/zero/etc Copy the realmd.conf.dist and mangosd.conf.dist files to their expected name: cp realmd.conf.dist realmd.conf cp mangosd.conf.dist mangosd.conf Edit the realmd.conf and find the line LoginDatabaseInfo. Provide your database information, according to this guide and if you have installed Vanilla, it should look like: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" Save your file and edit the file mangosd.conf. You need to provide the database information for the three database we have configured with our installer: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" WorldDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_world" CharacterDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_characters" Save your file and go back to the 'root' user: exit Make sure it keeps running ! What could be cooler than having the MaNGOS server starting automatically with your server ? Not much... so let's configure systemd to do so ! First of all, we need to tell it that we have two new services. Declare them by creating the corresponding files: touch /etc/systemd/system/realmd.service touch /etc/systemd/system/mangosd.service # Or give it a better name like zero.service if it's a vanilla gaming server for instance. Now, edit the /etc/systemd/system/realmd.service file and add the following content (Replace the installation path and the run user by the settings you have provided during the installation): [Unit] Description=Realmd service After=network.target mariadb.service [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/realmd -c /home/mangos/zero/etc/realmd.conf Restart=on-abort [Install] WantedBy=multi-user.target Save this file and edit the /etc/systemd/system/mangosd.service file (or the better name you gave to it) with the following content (same remark than above the installation path and the run user): [Unit] Description=WoW Vanilla service After=network.target mariadb.service [email protected] [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/mangosd -c /home/mangos/zero/etc/mangosd.conf WorkingDirectory=/home/mangos/zero/bin StandardInput=tty TTYPath=/dev/tty3 TTYReset=yes TTYVHangup=yes Restart=on-abort [Install] WantedBy=multi-user.target Mangos-Daemon as a Systemd service using screen (Added by @madmax May 2018) - If not using the above Mangosd. [Unit] Description=MaNGOS world server daemon After=mariadb.service [Service] Type=oneshot ExecStart=/usr/bin/screen -mdS mangosd /home/mangos/zero/bin/mangosd -c /home/mangos/zero/etc/mangosd.conf PIDFile=/home/mangos/zero/var/cosmic.pid RemainAfterExit=true # Give a reasonable amount of time for the server to start up/shut down #TimeoutSec=60 [Install] WantedBy=multi-user.target We are almost there ! You now need to tell systemd to reload its configuration: systemctl daemon-reload And let's start our processes to verify that they work: systemctl start realmd systemctl start mangosd To verify that it worked, execute the following command: systemctl status realmd systemctl status mangosd If it's working properly, you should have an output indicating you the success status for both service. The last step is to tell systemd to execute them at startup, for this, execute the following commands: systemctl enable realmd systemctl enable mangosd Congratulations ! You are now done with the MaNGOS setup on CentOS 7 🙂 You can now reboot your computer to verify that everything is indeed started: reboot
  8. i use aarch64 debian8 gcc4.9.2 g++4.9.2 when i build mangoszero [ 43%] Building CXX object dep/g3dlite/CMakeFiles/g3dlite.dir/G3D/AABox.cpp.oIn file included from /root/zero/server/dep/g3dlite/G3D/debugPrintf.h:19:0, from /root/zero/server/dep/g3dlite/G3D/debug.h:21, from /root/zero/server/dep/g3dlite/G3D/g3dmath.h:56, from /root/zero/server/dep/g3dlite/G3D/Vector3.h:18, from /root/zero/server/dep/g3dlite/G3D/AABox.h:19, from /root/zero/server/dep/g3dlite/G3D/AABox.cpp:11: /root/zero/server/dep/g3dlite/G3D/format.h:30:23: error: expected initializer before ‘format’ std::string __cdecl format( ^ In file included from /root/zero/server/dep/g3dlite/G3D/debug.h:21:0, from /root/zero/server/dep/g3dlite/G3D/g3dmath.h:56, from /root/zero/server/dep/g3dlite/G3D/Vector3.h:18, from /root/zero/server/dep/g3dlite/G3D/AABox.h:19, from /root/zero/server/dep/g3dlite/G3D/AABox.cpp:11: /root/zero/server/dep/g3dlite/G3D/debugPrintf.h:44:21: error: expected initializer before ‘consolePrintf’ std::string __cdecl consolePrintf(const char* fmt ...) G3D_CHECK_PRINTF_ARGS; ^ /root/zero/server/dep/g3dlite/G3D/debugPrintf.h:56:21: error: expected initializer before ‘debugPrintf’ std::string __cdecl debugPrintf(const char* fmt ...) G3D_CHECK_PRINTF_ARGS; ^ In file included from /root/zero/server/dep/g3dlite/G3D/Table.h:20:0, from /root/zero/server/dep/g3dlite/G3D/Vector2.h:22, from /root/zero/server/dep/g3dlite/G3D/Vector3.h:20, from /root/zero/server/dep/g3dlite/G3D/AABox.h:19, from /root/zero/server/dep/g3dlite/G3D/AABox.cpp:11: /root/zero/server/dep/g3dlite/G3D/Array.h:135:17: error: expected ‘;’ at end of member declaration static bool __cdecl compareGT(const T& a, const T& b) { ^ /root/zero/server/dep/g3dlite/G3D/Array.h:135:57: error: ISO C++ forbids declaration of ‘compareGT’ with no type [-fpermissive] static bool __cdecl compareGT(const T& a, const T& b) { ^ /root/zero/server/dep/g3dlite/G3D/Array.h:986:67: error: expected ‘)’ before ‘*’ token void sortSubArray(int beginIndex, int endIndex, bool (__cdecl *lessThan)(const T& elem1, const T& elem2)) { ^ /root/zero/server/dep/g3dlite/G3D/Array.h:986:67: error: expected ‘)’ before ‘*’ token /root/zero/server/dep/g3dlite/G3D/Array.h:986:59: error: expected ‘;’ at end of member declaration void sortSubArray(int beginIndex, int endIndex, bool (__cdecl *lessThan)(const T& elem1, const T& elem2)) { ^ /root/zero/server/dep/g3dlite/G3D/Array.h:986:68: error: ISO C++ forbids declaration of ‘lessThan’ with no type [-fpermissive] void sortSubArray(int beginIndex, int endIndex, bool (__cdecl *lessThan)(const T& elem1, const T& elem2)) { ^ /root/zero/server/dep/g3dlite/G3D/Array.h:986:68: error: expected ‘;’ at end of member declaration /root/zero/server/dep/g3dlite/G3D/Array.h:986:76: error: expected unqualified-id before ‘)’ token void sortSubArray(int beginIndex, int endIndex, bool (__cdecl *lessThan)(const T& elem1, const T& elem2)) { ^dep/g3dlite/CMakeFiles/g3dlite.dir/build.make:54: recipe for target 'dep/g3dlite/CMakeFiles/g3dlite.dir/G3D/AABox.cpp.o' failed make[2]: *** [dep/g3dlite/CMakeFiles/g3dlite.dir/G3D/AABox.cpp.o] Error 1 CMakeFiles/Makefile2:440: recipe for target 'dep/g3dlite/CMakeFiles/g3dlite.dir/all' failed make[1]: *** [dep/g3dlite/CMakeFiles/g3dlite.dir/all] Error 2 Makefile:117: recipe for target 'all' failed make: *** [all] Error 2
  9. In order to allow connections to your server under linux you need to add ports 3724/tcp and 8085/tcp to your firewall firewall-cmd --zone=public --permanent --add-port=3724/tcp firewall-cmd --zone=public --permanent --add-port=8085/tcp firewall-cmd --reload Please, anyone with permissions to write to closed topics, add this to the linux setup topic if possible. Thank you.
  10. I am following the guide here ... https://www.getmangos.eu/wiki/documentation/installation-guides/guideslinux/installing-mangos-on-ubuntu-1604-lts-r20078/ I am running Ubuntu 16.04 and chose to install MaNGOS 3. I have tried this many, many times and it is always failing constantly with errors at different places, which I have managed to fix until now. First of all, I thought that now everything was being done by a script, everything was going to be easy..... no... it is still accompanied by errors, and guides missing out vital stages. All of my client files have been copied to my MaNGOS home directory. Along the way, I noticed several typos and throughout the script which were either causing me errors or I had spotted during browsing the script. These were a clear indication that this script was never tested properly before being released and it would not have worked with these errors. Here's the diff on a couple of these:- < INSTPATH="$ROOTPATH/fice" --- > INSTPATH="$ROOTPATH/five" < rm -f "$GAMEPATH/map-extractor" --- > rm -rf "$GAMEPATH/map-extractor" As you can see, a typo where 'fice' should have been 'five' and also when removing a directory (recursively) it is missing the -r switch. Anyway, these were easy fixes but now the real problems begin... Everything appears to work fine until this point:- The realm database has been created!The realm database has been created! The characters database has been created! The world database has been created! The file "/home/mangos/three/src/database/World/Setup/FullDB/achievement_criteria_requirement.sql" was processed properly The file "/home/mangos/three/src/database/World/Setup/FullDB/achievement_reward.sql" was processed properly The file "/home/mangos/three/src/database/World/Setup/FullDB/areatrigger_involvedrelation.sql" was processed properly The file "/home/mangos/three/src/database/World/Setup/FullDB/areatrigger_tavern.sql" was processed properly The file "/home/mangos/three/src/database/World/Setup/FullDB/areatrigger_teleport.sql" was processed properly ... Database update "/home/mangos/three/src/database/World/Updates/Rel21/Rel21_07_006_Populate_missing_GO_desc.sql" was successfully applied! Realm Name: MaNGOS Three Server #1 Realm ID: 1 dirname: missing operand Try 'dirname --help' for more information. The sql files all appear to be created successfully but immediately afterwards there appears to be a problem with the dirname and this is because there is an issue with the find command. Running this directly on the command line gives me a permission denied :- INSTGAMEPATH=$(dirname $(find /home -name "WoW.exe"| head -1 2>>/dev/null)) By this time I had re-run the whole getmangos script more than half a dozen times over a period of many hours and I couldn't be bothered to fix this so I just corrected it as follows:- INSTGAMEPATH=$(dirname $(find /home/mangos -name "Wow.exe"| head -1 2>>/dev/null)) Oh and by the way note how I have changed the WoW.exe to Wow.exe as it appears in my client, and without this change the find command will return nothing. Strangely, it will now ask your game path (again?), which I had to manually enter. I think this bit of the script needs some rework. lqqqqqqqqqqqqqqqqqqqqqWoW Game Pathqqqqqqqqqqqqqqqqqqqqqqqqk x Please, provide the path to your game directory. x x Default: x x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x x x/home/mangos x x tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu x < OK > <Cancel> x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj And then, this is when the script falls on its arse completely... lqqqqqqqqqqqqqqqqqqqqqqqqqqqSelect Tasksqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x Please select the extractions to perform x x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x x x [*] 1 DBC and Maps x x x x [*] 2 Vmaps x x x x [*] 3 Mmaps x x x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x x x tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu x < OK > <Cancel> x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj As soon as you continue here, this is what appears on the screen... Map & DBC Extractor =================== No locales detected cp: cannot stat '/home/mangos/dbc': No such file or directory cp: cannot stat '/home/mangos/maps': No such file or directory Logging usage: Log <message> <echo flag> Beginning work .... Loading common MPQ files Error open archive: ./Data/enGB/locale-enGB.MPQ Error open archive: ./Data/enUS/locale-enUS.MPQ Error open archive: ./Data/deDE/locale-deDE.MPQ Error open archive: ./Data/esES/locale-esES.MPQ Error open archive: ./Data/frFR/locale-frFR.MPQ Error open archive: ./Data/koKR/locale-koKR.MPQ Error open archive: ./Data/zhCN/locale-zhCN.MPQ Error open archive: ./Data/zhTW/locale-zhTW.MPQ Error open archive: ./Data/enCN/locale-enCN.MPQ Error open archive: ./Data/enTW/locale-enTW.MPQ Error open archive: ./Data/esMX/locale-esMX.MPQ Error open archive: ./Data/ruRU/locale-ruRU.MPQ Reading liquid types from LiquidType.dbc...Fatal error: Could not read LiquidType.dbc! There was an issue while extracting VMaps! I am almost at the point of giving up as it is one problem after another. No locales detected Cannot locate the dbc or maps directory (these have not been created yet) A scripting problem being highlight by the logging usage message MPQ files!!!?? These have not been used in game clients for at least a couple of years! - I don't see this script ever working with current game clients. Error reading .dbc files... (maybe because the dbc directory does not exist?) An error extracting vmaps I have been trying to install MaNGOS over a number of years now and I never successfully completed it as there are always errors, more errors, incorrect or missing instructions. Sometimes even to the point of disinformation. I then give up. Again it seems that there are a plethora of errors etc in this script but I am determined to get to the bottom of it this around. I have gone quite a long way to investigate and report these errors and I would appreciate some help, please. If there is any further information you require, please ask. I have just tried this again and thought that this may me working, but no...... Then out of desperation, I tried the ExtractResources.sh script. This script appears to be deceptive and when you think it is working away like a busy beaver, it is actually doing nothing. One the screen it shows... Tue 25 Jul 09:07:28 BST 2017: Start extracting data for MaNGOS DBC and map files will be extracted Vmaps will be extracted Mmaps will be extracted with 1 processes Tue 25 Jul 09:07:28 BST 2017: Start extracting data for MaNGOS, DBCs/maps 1, vmaps 1, mmaps 1 on 1 processes Tue 25 Jul 09:07:28 BST 2017: Start extraction of DBCs and map files... Map & DBC Extractor =================== No locales detected Tue 25 Jul 09:07:28 BST 2017: Extracting of DBCs and map files finished Tue 25 Jul 09:07:28 BST 2017: Start extraction of vmaps... However, after waiting for a few hours, I decided to check its progress. I could find no maps, mmaps, dbc's or vmaps anywhere, so I checked the log file getmangos.log and this is what it says... 2017-07-25:09:23:32 Extracting DBC and Maps 2017-07-25:09:23:32 DBC and Maps are extracted 2017-07-25:09:23:32 Copying DBC and Maps files to installation directory 2017-07-25:09:23:37 Deleting VMaps previously generated. 2017-07-25:09:23:37 Copying VMaps extractor 2017-07-25:09:23:37 Extracting VMaps 2017-07-25:09:23:37 There was an issue while extracting VMaps! So all along it was doing nothing. Once again, please help...
  11. Hello, in this tutorial, I will explain a step-by-step approach to configure, install and run Mangos on a Debian 8 system. To fully execute the installation, you need an original copy of the game client version you want to run. This guide has been fully tested on an empty Debian 8 system with minimal installation. Let's go.. Setup the database: Debian is supporting MySQL by default. This part of the guide will help you to setup your instance of MySQL. Launch a terminal, and if it's not already the case, you need to become the 'root' user: sudo su - root Then, install MySQL, enter your root password when you will be prompted for: aptitude -y install mysql-server Once MySQLis installed, start it: systemctl start mysql I do advise you to add MySQL service at startup to execute it automatically: systemctl enable mysql Let's secure your MySQL installation, execute the following command: mysql_secure_installation I advise you to setup the following parameters: Do not change the root password Remove anonymous access Disable remote access for the root user Remove the test database Reload the privileges Now that the setup of the database is done, we need to add the prerequisites for the mangos database configuration. We need to start by creating an user for mangos, login to the database using: mysql -u root -p Create the user you wish, the example given is creating an user 'mangos' who can connect from the 'localhost' and has the password 'password' (do not forget the ';') at the end: CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'password'; We then need to grant privileges to that user that we can use it later to setup the Mangos schemas (again, do not forget the ';' symbol): GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost'; Exit the terminal: quit Congratulations, you have setup the pre-requisites for the database on Debian ! Install Mangos: We are now at the interesting part, how do we install Mangos on Debian ? Well, assuming you are logged in as 'root', go to the home directory: cd ~ Now, we can download our installer: wget https://raw.githubusercontent.com/mangoszero/server/master/linux/getmangos.sh Set the permissions to be allowed to execute it: chmod 700 getmangos.sh And execute it: ./getmangos.sh Before we go further, some explanations on the available activities: Install Prerequisites will install all the necessary dependencies for you to build & run mangos. Toggled by default. Set Download And Install Paths will allow you to specify where the sources must be downloaded and where the binaries must be installed. Toggled by default. Clone Source repositories will help you cloning the Mangos sources. Toggled by default. Build MaNGOS will assist you in the building process of MaNGOS. Toggled by default. Install MaNGOS will help you installing MaNGOS. Toggled by default. Install Databases will assist you in the database schemas creation. Toggled by default. Extract Resources will help you to extract the DBC, maps, mmaps and vmaps from the game client. Toggled by default. Create Code::Blocks Project File will create a project for the Code::Blocks editor. Do not toggle this option if you don't plan to edit the MaNGOS sources. Now that you know everything, let the default options selected and select 'Ok' thanks to the Tab key. The script is now installing the necessary dependencies on your Debian. You will be prompted to provide your agreement to install the build dependencies. Select 'Yes' two times. User selection: Mangos provides you the opportunity to run it under another user than the 'root' one. This is a good practice to isolate softwares and limit the security impact in case of an exploited vulnerability. The default proposed run user is 'mangos' but you can change if you wish. Select 'Ok' to continue. If you have already performed this step, the installer will ask you whether you want to keep that user. I advise you to reply 'Yes' except if you know what you are doing. Choose WoW Release: The next screen is requesting you to choose the WoW release you are willing to install. Select the one you that fits your wish and select 'Ok'. Source-Code Path: The next screen is asking you to provide the source path. By default, the proposed format is /home/<run user>/<wow version>/src. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero/src Reply 'Yes' to create the directory if it does not exist. If it does exist and contains sources, the installer will ask you whether you want to delete the content or not. Installation Path: The next screen is asking you to provide the installation path. This is the location from where you will execute the Mangos processes. By default, the proposed format is /home/<run user>/<wow version>. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero If it does exist and contains compiled sources, the installer will ask you whether you want to delete the content or not. Clone or update MaNGOS: The next step of the script is asking you whether you want to clone, update or use an existing copy of the MaNGOS sources. For a fresh installation, select the option '0 Clone a fresh copy of MaNGOS'. The installer will now connect to Github and check the available development branch, currently, the last stable release is the Rel21 and is hosted in the 'master' branch. The installer is now cloning the server and database repositories. Build Options: You are now at the build step. Some explanations over this screen: Enable Debug will setup debug flags and more tracing on Mangos. Use this build option only if you're requested to to fix a bug. Building a software in debug mode significantly reduces its performances. Use Standard Malloc, toggle this option to use the standard memory allocation. Untoggle this option only if you know what you are doing. Use External ACE libraries. Allows you to use the ACE libraries coming from your system. Untoggle this option only if you know what you are doing. Use PostgreSQL insteald of MySQL/MariaDB. Allows you to use another database provider than the default one. This option has not been tested and, if you have followed the tutorial so far, you should have setup MySQL ;-) Build Client Tools will build the extractors necessary to get dbc, maps, mmaps and vmaps out of the game client. Unselect this option only if you already have these resources extracted. Use SD3 will allow you to build the ScriptDev3 Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on C++ scripts. Use Eluna will allow you to build the Eluna Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on LUA scripts. Select 'Ok' to proceed with the build process and confirm that would want to build MaNGOS. The installer is now building MaNGOS. Depending on the speed of your system, you have the time to drink a glass of water or a cup of coffee. :-) Installation: You will now be prompted to install Mangos. Select 'Yes' to install it. Database Operations: Wait.. another database setup ?! Yes, but this time, we are populating the database with the mangos data. You have three options here: Install clean databases to setup a fresh database Update existing databases to update your old version of the database Skip database work... but it wouldn't make sense :-) Select the first option if you are performing a fresh installation. You will be prompted to select your type of database. If you followed the guide so far, you should select "MariaDB" because Debian is providing an old version of MySQL. The installer will then request your database information, if you followed the guide, you need to provide the following input: Hostname: localhost Port: 3306 User: mangos Password: password You can now choose into several options: ReInstall the realm database, containing all the realms information and the accounts ReInstall the world database, containing all the world configuration ReInstall the characters database, containing all the characters information Update the realmlist to setup an initial game server By default, all options must be toggled. The installer will now perform the database import. Extract Game Data: This step will copy the extractors to the wow game location, extract dbc, maps, mmaps and vmaps and copy these extracted data to your installation directory. The installer will automatically look for a suitable WoW client into your /home directory. If it doesn't find anything, you will have to provide your game location path. If the provided path doesn't contain any game data, the installer will exit. The extractor steps allows you to select the artifacts you want to extract: DBC and Maps, which are the minimum set of data you need to extract Mmaps which are the movement maps, based on vectoriel calculation, required for an efficient pathfinding Vmaps which are the virtual maps, used for collision detection and LoS detection The Mmaps extraction is taking several hours, you will have the time to sleep or drink several coffees. :-) Congratulations ! You almost did it ! Still few steps to perform before you can play on your preferred game. First of all, you need to switch to your run user. If you used mangos, the command will look like: su - mangos You need then to go to the configuration directory of your installation, if you installed Vanilla, it will look like the following command: cd /home/mangos/zero/etc Copy the realmd.conf.dist and mangosd.conf.dist files to their expected name: cp realmd.conf.dist realmd.conf cp mangosd.conf.dist mangosd.conf Edit the realmd.conf and find the line LoginDatabaseInfo. Provide your database information, according to this guide and if you have installed Vanilla, it should look like: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" Save your file and edit the file mangosd.conf. You need to provide the database information for the three database we have configured with our installer: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" WorldDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_world" CharacterDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_characters" Save your file and go back to the 'root' user: exit Make sure it keeps running ! What could be cooler than having the MaNGOS server starting automatically with your server ? Not much... so let's configure systemd to do so ! First of all, we need to tell it that we have two new services. Declare them by creating the corresponding files: touch /etc/systemd/system/realmd.service touch /etc/systemd/system/mangosd.service # Or give it a better name like zero.service if it's a vanilla gaming server for instance. Now, edit the /etc/systemd/system/realmd.service file and add the following content (Replace the installation path and the run user by the settings you have provided during the installation): [Unit] Description=Realmd service After=network.target mysql.service [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/realmd -c /home/mangos/zero/etc/realmd.conf Restart=on-abort [Install] WantedBy=multi-user.target Save this file and edit the /etc/systemd/system/mangosd.service file (or the better name you gave to it) with the following content (same remark than above the installation path and the run user): [Unit] Description=WoW Vanilla service After=network.target mysql.service [email protected] [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/mangosd -c /home/mangos/zero/etc/mangosd.conf WorkingDirectory=/home/mangos/zero/bin StandardInput=tty TTYPath=/dev/tty3 TTYReset=yes TTYVHangup=yes Restart=on-abort [Install] WantedBy=multi-user.target We are almost there ! You now need to tell systemd to reload its configuration: systemctl daemon-reload And let's start our processes to verify that they work: systemctl start realmd systemctl start mangosd To verify that it worked, execute the following command: systemctl status realmd systemctl status mangosd If it's working properly, you should have an output indicating you the success status for both service. The last step is to tell systemd to execute them at startup, for this, execute the following commands: systemctl enable realmd systemctl enable mangosd Congratulations ! You are now done with the MaNGOS setup on Debian 8 :-) You can now reboot your computer to verify that everything is indeed started: reboot
  12. MUCH OF THE INFORMATION FOUND WITHIN IS NO LONGER VALID AND OUT OF DATE Hello, in this tutorial, I will explain a step-by-step approach to configure, install and run Mangos on a Ubuntu 16.04 LTS system. To fully execute the installation, you need an original copy of the game client version you want to run. This guide has been fully tested on an empty Ubuntu 16.04 LTS system with minimal installation. Let's go.. Setup the database: Ubuntu is supporting MySQL by default. This part of the guide will help you to setup your instance of MySQL. Launch a terminal, and if it's not already the case, you need to become the 'root' user: sudo su - root Then, install MySQL, enter your root password when you will be prompted for: apt-get -y install mysql-server Once MySQLis installed, start it: systemctl start mysql I do advise you to add Mysql service at startup to execute it automatically: systemctl enable mysql Let's secure your mysql installation, execute the following command: mysql_secure_installation I advise you to setup the following parameters: Do not enforce the use of the password plugin Do not change the root password Remove anonymous access Disable remote access for the root user Remove the test database Reload the privileges Now that the setup of the database is done, we need to add the prerequisites for the mangos database configuration. We need to start by creating an user for mangos, login to the database using: mysql -u root -p Create the user you wish, the example given is creating an user 'mangos' who can connect from the 'localhost' and has the password 'password' (do not forget the ';') at the end: CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'password'; We then need to grant privileges to that user that we can use it later to setup the Mangos schemas (again, do not forget the ';' symbol): GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost'; Exit the terminal: quit Congratulations, you have setup the pre-requisites for the database on Ubuntu ! Install Mangos: We are now at the interesting part, how do we install Mangos on Ubuntu ? Well, assuming you are logged in as 'root', go to the home directory: cd ~ Now, we can download our installer: wget https://raw.githubusercontent.com/mangoszero/server/master/linux/getmangos.sh Set the permissions to be allowed to execute it: chmod 700 getmangos.sh And execute it: ./getmangos.sh Before we go further, some explanations on the available activities: Install Prerequisites will install all the necessary dependencies for you to build & run mangos. Toggled by default. Set Download And Install Paths will allow you to specify where the sources must be downloaded and where the binaries must be installed. Toggled by default. Clone Source repositories will help you cloning the Mangos sources. Toggled by default. Build MaNGOS will assist you in the building process of MaNGOS. Toggled by default. Install MaNGOS will help you installing MaNGOS. Toggled by default. Install Databases will assist you in the database schemas creation. Toggled by default. Extract Resources will help you to extract the DBC, maps, mmaps and vmaps from the game client. Toggled by default. Create Code::Blocks Project File will create a project for the Code::Blocks editor. Do not toggle this option if you don't plan to edit the MaNGOS sources. Now that you know everything, let the default options selected and select 'Ok' thanks to the Tab key. The script is now installing the necessary dependencies on your Ubuntu. You will be prompted to provide your agreement to install the build dependencies. Select 'Yes' two times. User selection: Mangos provides you the opportunity to run it under another user than the 'root' one. This is a good practice to isolate softwares and limit the security impact in case of an exploited vulnerability. The default proposed run user is 'mangos' but you can change if you wish. Select 'Ok' to continue. If you have already performed this step, the installer will ask you whether you want to keep that user. I advise you to reply 'Yes' except if you know what you are doing. Choose WoW Release: The next screen is requesting you to choose the WoW release you are willing to install. Select the one you that fits your wish and select 'Ok'. Source-Code Path: The next screen is asking you to provide the source path. By default, the proposed format is /home/<run user>/<wow version>/src. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero/src Reply 'Yes' to create the directory if it does not exist. If it does exist and contains sources, the installer will ask you whether you want to delete the content or not. Installation Path: The next screen is asking you to provide the installation path. This is the location from where you will execute the Mangos processes. By default, the proposed format is /home/<run user>/<wow version>. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero If it does exist and contains compiled sources, the installer will ask you whether you want to delete the content or not. Clone or update MaNGOS: The next step of the script is asking you whether you want to clone, update or use an existing copy of the MaNGOS sources. For a fresh installation, select the option '0 Clone a fresh copy of MaNGOS'. The installer will now connect to Github and check the available development branch, currently, the last stable release is the Rel21 and is hosted in the 'master' branch. The installer is now cloning the server and database repositories. Build Options: You are now at the build step. Some explanations over this screen: Enable Debug will setup debug flags and more tracing on Mangos. Use this build option only if you're requested to to fix a bug. Building a software in debug mode significantly reduces its performances. Use Standard Malloc, toggle this option to use the standard memory allocation. Untoggle this option only if you know what you are doing. Use External ACE libraries. Allows you to use the ACE libraries coming from your system. Untoggle this option only if you know what you are doing. Use PostgreSQL insteald of MySQL/MariaDB. Allows you to use another database provider than the default one. This option has not been tested and, if you have followed the tutorial so far, you should have setup MySQL 😉 Build Client Tools will build the extractors necessary to get dbc, maps, mmaps and vmaps out of the game client. Unselect this option only if you already have these resources extracted. Use SD3 will allow you to build the ScriptDev3 Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on C++ scripts. Use Eluna will allow you to build the Eluna Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on LUA scripts. Select 'Ok' to proceed with the build process and confirm that would want to build MaNGOS. The installer is now building MaNGOS. Depending on the speed of your system, you have the time to drink a glass of water or a cup of coffee. 🙂 Installation: You will now be prompted to install Mangos. Select 'Yes' to install it. Database Operations: Wait.. another database setup ?! Yes, but this time, we are populating the database with the mangos data. You have three options here: Install clean databases to setup a fresh database Update existing databases to update your old version of the database Skip database work... but it wouldn't make sense 🙂 Select the first option if you are performing a fresh installation. You will be prompted to select your type of database. If you followed the guide so far, you should select "MySQL". The installer will then request your database information, if you followed the guide, you need to provide the following input: Hostname: localhost Port: 3306 User: mangos Password: password You can now choose into several options: ReInstall the realm database, containing all the realms information and the accounts ReInstall the world database, containing all the world configuration ReInstall the characters database, containing all the characters information Update the realmlist to setup an initial game server By default, all options must be toggled. The installer will now perform the database import. Extract Game Data: This step will copy the extractors to the wow game location, extract dbc, maps, mmaps and vmaps and copy these extracted data to your installation directory. The installer will automatically look for a suitable WoW client into your /home directory. If it doesn't find anything, you will have to provide your game location path. If the provided path doesn't contain any game data, the installer will exit. The extractor steps allows you to select the artifacts you want to extract: DBC and Maps, which are the minimum set of data you need to extract Mmaps which are the movement maps, based on vectoriel calculation, required for an efficient pathfinding Vmaps which are the virtual maps, used for collision detection and LoS detection The Mmaps extraction is taking several hours, you will have the time to sleep or drink several coffees. 🙂 Congratulations ! You almost did it ! Still few steps to perform before you can play on your preferred game. First of all, you need to switch to your run user. If you used mangos, the command will look like: su - mangos You need then to go to the configuration directory of your installation, if you installed Vanilla, it will look like the following command: cd /home/mangos/zero/etc Copy the realmd.conf.dist and mangosd.conf.dist files to their expected name: cp realmd.conf.dist realmd.conf cp mangosd.conf.dist mangosd.conf Edit the realmd.conf and find the line LoginDatabaseInfo. Provide your database information, according to this guide and if you have installed Vanilla, it should look like: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" Save your file and edit the file mangosd.conf. You need to provide the database information for the three database we have configured with our installer: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" WorldDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_world" CharacterDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_characters" Save your file and go back to the 'root' user: exit Make sure it keeps running ! What could be cooler than having the MaNGOS server starting automatically with your server ? Not much... so let's configure systemd to do so ! First of all, we need to tell it that we have two new services. Declare them by creating the corresponding files: touch /etc/systemd/system/realmd.service touch /etc/systemd/system/mangosd.service # Or give it a better name like zero.service if it's a vanilla gaming server for instance. Now, edit the /etc/systemd/system/realmd.service file and add the following content (Replace the installation path and the run user by the settings you have provided during the installation): [Unit] Description=Realmd service After=network.target mysql.service [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/realmd -c /home/mangos/zero/etc/realmd.conf Restart=on-abort [Install] WantedBy=multi-user.target Save this file and edit the /etc/systemd/system/mangosd.service file (or the better name you gave to it) with the following content (same remark than above the installation path and the run user): [Unit] Description=WoW Vanilla service After=network.target mysql.service [email protected] [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/mangosd -c /home/mangos/zero/etc/mangosd.conf WorkingDirectory=/home/mangos/zero/bin StandardInput=tty TTYPath=/dev/tty3 TTYReset=yes TTYVHangup=yes Restart=on-abort [Install] WantedBy=multi-user.target We are almost there ! You now need to tell systemd to reload its configuration: systemctl daemon-reload And let's start our processes to verify that they work: systemctl start realmd systemctl start mangosd To verify that it worked, execute the following command: systemctl status realmd systemctl status mangosd If it's working properly, you should have an output indicating you the success status for both service. The last step is to tell systemd to execute them at startup, for this, execute the following commands: systemctl enable realmd systemctl enable mangosd Congratulations ! You are now done with the MaNGOS setup on Ubuntu 16.04 :-) You can now reboot your computer to verify that everything is indeed started: reboot
  13. Hello, in this tutorial, I will explain a step-by-step approach to configure, install and run Mangos on a Linux Mint 18 system. To fully execute the installation, you need an original copy of the game client version you want to run. This guide has been fully tested on an empty Linux Mint 18 system with minimal installation. Let's go.. Setup the database: Linux Mint is supporting MySQL by default. This part of the guide will help you to setup your instance of MySQL. Launch a terminal, and if it's not already the case, you need to become the 'root' user: sudo su - root Then, install MySQL, enter your root password when you will be prompted for: aptitude -y install mysql-server Once MySQLis installed, start it: systemctl start mysql I do advise you to add MySQL service at startup to execute it automatically: systemctl enable mysql Let's secure your MySQL installation, execute the following command: mysql_secure_installation I advise you to setup the following parameters: Do not enforce the use of the password plugin Do not change the root password Remove anonymous access Disable remote access for the root user Remove the test database Reload the privileges Now that the setup of the database is done, we need to add the prerequisites for the mangos database configuration. We need to start by creating an user for mangos, login to the database using: mysql -u root -p Create the user you wish, the example given is creating an user 'mangos' who can connect from the 'localhost' and has the password 'password' (do not forget the ';') at the end: CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'password'; We then need to grant privileges to that user that we can use it later to setup the Mangos schemas (again, do not forget the ';' symbol): GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost'; Exit the terminal: quit Congratulations, you have setup the pre-requisites for the database on Linux Mint ! Install Mangos: We are now at the interesting part, how do we install Mangos on Linux Mint ? Well, assuming you are logged in as 'root', go to the home directory: cd ~ Now, we can download our installer: wget https://raw.githubusercontent.com/mangoszero/server/master/linux/getmangos.sh Set the permissions to be allowed to execute it: chmod 700 getmangos.sh And execute it: ./getmangos.sh Before we go further, some explanations on the available activities: Install Prerequisites will install all the necessary dependencies for you to build & run mangos. Toggled by default. Set Download And Install Paths will allow you to specify where the sources must be downloaded and where the binaries must be installed. Toggled by default. Clone Source repositories will help you cloning the Mangos sources. Toggled by default. Build MaNGOS will assist you in the building process of MaNGOS. Toggled by default. Install MaNGOS will help you installing MaNGOS. Toggled by default. Install Databases will assist you in the database schemas creation. Toggled by default. Extract Resources will help you to extract the DBC, maps, mmaps and vmaps from the game client. Toggled by default. Create Code::Blocks Project File will create a project for the Code::Blocks editor. Do not toggle this option if you don't plan to edit the MaNGOS sources. Now that you know everything, let the default options selected and select 'Ok' thanks to the Tab key. The script is now installing the necessary dependencies on your Linux Mint. You will be prompted to provide your agreement to install the build dependencies. Select 'Yes' two times. User selection: Mangos provides you the opportunity to run it under another user than the 'root' one. This is a good practice to isolate softwares and limit the security impact in case of an exploited vulnerability. The default proposed run user is 'mangos' but you can change if you wish. Select 'Ok' to continue. If you have already performed this step, the installer will ask you whether you want to keep that user. I advise you to reply 'Yes' except if you know what you are doing. Choose WoW Release: The next screen is requesting you to choose the WoW release you are willing to install. Select the one you that fits your wish and select 'Ok'. Source-Code Path: The next screen is asking you to provide the source path. By default, the proposed format is /home/<run user>/<wow version>/src. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero/src Reply 'Yes' to create the directory if it does not exist. If it does exist and contains sources, the installer will ask you whether you want to delete the content or not. Installation Path: The next screen is asking you to provide the installation path. This is the location from where you will execute the Mangos processes. By default, the proposed format is /home/<run user>/<wow version>. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero If it does exist and contains compiled sources, the installer will ask you whether you want to delete the content or not. Clone or update MaNGOS: The next step of the script is asking you whether you want to clone, update or use an existing copy of the MaNGOS sources. For a fresh installation, select the option '0 Clone a fresh copy of MaNGOS'. The installer will now connect to Github and check the available development branch, currently, the last stable release is the Rel21 and is hosted in the 'master' branch. The installer is now cloning the server and database repositories. Build Options: You are now at the build step. Some explanations over this screen: Enable Debug will setup debug flags and more tracing on Mangos. Use this build option only if you're requested to to fix a bug. Building a software in debug mode significantly reduces its performances. Use Standard Malloc, toggle this option to use the standard memory allocation. Untoggle this option only if you know what you are doing. Use External ACE libraries. Allows you to use the ACE libraries coming from your system. Untoggle this option only if you know what you are doing. Use PostgreSQL insteald of MySQL/MariaDB. Allows you to use another database provider than the default one. This option has not been tested and, if you have followed the tutorial so far, you should have setup MySQL ;-) Build Client Tools will build the extractors necessary to get dbc, maps, mmaps and vmaps out of the game client. Unselect this option only if you already have these resources extracted. Use SD3 will allow you to build the ScriptDev3 Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on C++ scripts. Use Eluna will allow you to build the Eluna Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on LUA scripts. Select 'Ok' to proceed with the build process and confirm that would want to build MaNGOS. The installer is now building MaNGOS. Depending on the speed of your system, you have the time to drink a glass of water or a cup of coffee. :-) Installation: You will now be prompted to install Mangos. Select 'Yes' to install it. Database Operations: Wait.. another database setup ?! Yes, but this time, we are populating the database with the mangos data. You have three options here: Install clean databases to setup a fresh database Update existing databases to update your old version of the database Skip database work... but it wouldn't make sense :-) Select the first option if you are performing a fresh installation. You will be prompted to select your type of database. If you followed the guide so far, you should select "MySQL". The installer will then request your database information, if you followed the guide, you need to provide the following input: Hostname: localhost Port: 3306 User: mangos Password: password You can now choose into several options: ReInstall the realm database, containing all the realms information and the accounts ReInstall the world database, containing all the world configuration ReInstall the characters database, containing all the characters information Update the realmlist to setup an initial game server By default, all options must be toggled. The installer will now perform the database import. Extract Game Data: This step will copy the extractors to the wow game location, extract dbc, maps, mmaps and vmaps and copy these extracted data to your installation directory. The installer will automatically look for a suitable WoW client into your /home directory. If it doesn't find anything, you will have to provide your game location path. If the provided path doesn't contain any game data, the installer will exit. The extractor steps allows you to select the artifacts you want to extract: DBC and Maps, which are the minimum set of data you need to extract Mmaps which are the movement maps, based on vectoriel calculation, required for an efficient pathfinding Vmaps which are the virtual maps, used for collision detection and LoS detection The Mmaps extraction is taking several hours, you will have the time to sleep or drink several coffees. :-) Congratulations ! You almost did it ! Still few steps to perform before you can play on your preferred game. First of all, you need to switch to your run user. If you used mangos, the command will look like: su - mangos You need then to go to the configuration directory of your installation, if you installed Vanilla, it will look like the following command: cd /home/mangos/zero/etc Copy the realmd.conf.dist and mangosd.conf.dist files to their expected name: cp realmd.conf.dist realmd.conf cp mangosd.conf.dist mangosd.conf Edit the realmd.conf and find the line LoginDatabaseInfo. Provide your database information, according to this guide and if you have installed Vanilla, it should look like: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" Save your file and edit the file mangosd.conf. You need to provide the database information for the three database we have configured with our installer: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" WorldDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_world" CharacterDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_characters" Save your file and go back to the 'root' user: exit Make sure it keeps running ! What could be cooler than having the MaNGOS server starting automatically with your server ? Not much... so let's configure systemd to do so ! First of all, we need to tell it that we have two new services. Declare them by creating the corresponding files: touch /etc/systemd/system/realmd.service touch /etc/systemd/system/mangosd.service # Or give it a better name like zero.service if it's a vanilla gaming server for instance. Now, edit the /etc/systemd/system/realmd.service file and add the following content (Replace the installation path and the run user by the settings you have provided during the installation): [Unit] Description=Realmd service After=network.target mysql.service [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/realmd -c /home/mangos/zero/etc/realmd.conf Restart=on-abort [Install] WantedBy=multi-user.target Save this file and edit the /etc/systemd/system/mangosd.service file (or the better name you gave to it) with the following content (same remark than above the installation path and the run user): [Unit] Description=WoW Vanilla service After=network.target mysql.service [email protected] [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/mangosd -c /home/mangos/zero/etc/mangosd.conf WorkingDirectory=/home/mangos/zero/bin StandardInput=tty TTYPath=/dev/tty3 TTYReset=yes TTYVHangup=yes Restart=on-abort [Install] WantedBy=multi-user.target We are almost there ! You now need to tell systemd to reload its configuration: systemctl daemon-reload And let's start our processes to verify that they work: systemctl start realmd systemctl start mangosd To verify that it worked, execute the following command: systemctl status realmd systemctl status mangosd If it's working properly, you should have an output indicating you the success status for both service. The last step is to tell systemd to execute them at startup, for this, execute the following commands: systemctl enable realmd systemctl enable mangosd Congratulations ! You are now done with the MaNGOS setup on Linux Mint 18 :-) You can now reboot your computer to verify that everything is indeed started: reboot
  14. Hello, in this tutorial, I will explain a step-by-step approach to configure, install and run Mangos on a Fedora 25 Linux system. To fully execute the installation, you need an original copy of the game client version you want to run. This guide has been fully tested on an empty Fedora 25 system with minimal installation. Let's go.. Setup the database: Fedora is supporting MariaDB instead of MySQL by default. This part of the guide will help you to setup your instance of MariaDB. Launch a terminal, and if it's not already the case, you need to become the 'root' user: sudo su - root Then, install MariaDB: yum -y install mariadb-server Once MariaDB is installed, start it: systemctl start mariadb I do advise you to add mariadb service at startup to execute it automatically: systemctl enable mariadb Let's secure your mariadb installation, execute the following command: mysql_secure_installation I advise you to setup the following parameters: Setup a Root password Remove anonymous access Disable remote access for the root user Remove the test database Reload the privileges Verify that you database configuration is working properly. systemctl status mariadb Now that the setup of the database is done, we need to add the prerequisites for the mangos database configuration. We need to start by creating an user for mangos, login to the database using: mysql -u root -p Create the user you wish, the example given is creating an user 'mangos' who can connect from the 'localhost' and has the password 'password' (do not forget the ';') at the end: CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'password'; We then need to grant privileges to that user that we can use it later to setup the Mangos schemas (again, do not forget the ';' symbol): GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost'; Exit the terminal: quit Congratulations, you have setup the pre-requisites for the database on Fedora ! Install Mangos: We are now at the interesting part, how do we install Mangos on Fedora ? Well, assuming you are logged in as 'root', go to the home directory: cd ~ Now, we can download our installer: wget https://raw.githubusercontent.com/mangoszero/server/master/linux/getmangos.sh Set the permissions to be allowed to execute it: chmod 700 getmangos.sh And execute it: ./getmangos.sh Before we go further, some explanations on the available activities: Install Prerequisites will install all the necessary dependencies for you to build & run mangos. Toggled by default. Set Download And Install Paths will allow you to specify where the sources must be downloaded and where the binaries must be installed. Toggled by default. Clone Source repositories will help you cloning the Mangos sources. Toggled by default. Build MaNGOS will assist you in the building process of MaNGOS. Toggled by default. Install MaNGOS will help you installing MaNGOS. Toggled by default. Install Databases will assist you in the database schemas creation. Toggled by default. Extract Resources will help you to extract the DBC, maps, mmaps and vmaps from the game client. Toggled by default. Create Code::Blocks Project File will create a project for the Code::Blocks editor. Do not toggle this option if you don't plan to edit the MaNGOS sources. Now that you know everything, let the default options selected and select 'Ok' thanks to the Tab key. The script is now installing the necessary dependencies on your Fedora. You will be prompted to provide your agreement to install the build dependencies. Select 'Yes' two times. On Fedora, ACE will also be downloaded and built, at this moment, it is the version 6.4.2 which is built by the installer. User selection: Mangos provides you the opportunity to run it under another user than the 'root' one. This is a good practice to isolate softwares and limit the security impact in case of an exploited vulnerability. The default proposed run user is 'mangos' but you can change if you wish. Select 'Ok' to continue. If you have already performed this step, the installer will ask you whether you want to keep that user. I advise you to reply 'Yes' except if you know what you are doing. Choose WoW Release: The next screen is requesting you to choose the WoW release you are willing to install. Select the one you that fits your wish and select 'Ok'. Source-Code Path: The next screen is asking you to provide the source path. By default, the proposed format is /home/<run user>/<wow version>/src. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero/src Reply 'Yes' to create the directory if it does not exist. If it does exist and contains sources, the installer will ask you whether you want to delete the content or not. Installation Path: The next screen is asking you to provide the installation path. This is the location from where you will execute the Mangos processes. By default, the proposed format is /home/<run user>/<wow version>. For instance, for a run user 'mangos' and a wow version 'Vanilla', the proposed path will be: /home/mangos/zero If it does exist and contains compiled sources, the installer will ask you whether you want to delete the content or not. Clone or update MaNGOS: The next step of the script is asking you whether you want to clone, update or use an existing copy of the MaNGOS sources. For a fresh installation, select the option '0 Clone a fresh copy of MaNGOS'. The installer will now connect to Github and check the available development branch, currently, the last stable release is the Rel21 and is hosted in the 'master' branch. The installer is now cloning the server and database repositories. Build Options: You are now at the build step. Some explanations over this screen: Enable Debug will setup debug flags and more tracing on Mangos. Use this build option only if you're requested to to fix a bug. Building a software in debug mode significantly reduces its performances. Use Standard Malloc, toggle this option to use the standard memory allocation. Untoggle this option only if you know what you are doing. Use External ACE libraries. Allows you to use the ACE libraries coming from your system. Untoggle this option only if you know what you are doing. Use PostgreSQL insteald of MySQL/MariaDB. Allows you to use another database provider than the default one. This option has not been tested and, if you have followed the tutorial so far, you should have setup MariaDB ;-) Build Client Tools will build the extractors necessary to get dbc, maps, mmaps and vmaps out of the game client. Unselect this option only if you already have these resources extracted. Use SD3 will allow you to build the ScriptDev3 Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on C++ scripts. Use Eluna will allow you to build the Eluna Engine provided with MaNGOS. We advise you to keep this option toggled except if you don't like living world based on LUA scripts. Select 'Ok' to proceed with the build process and confirm that would want to build MaNGOS. The installer is now building MaNGOS. Depending on the speed of your system, you have the time to drink a glass of water or a cup of coffee. :-) Installation: You will now be prompted to install Mangos. Select 'Yes' to install it. Database Operations: Wait.. another database setup ?! Yes, but this time, we are populating the database with the mangos data. You have three options here: Install clean databases to setup a fresh database Update existing databases to update your old version of the database Skip database work... but it wouldn't make sense :-) Select the first option if you are performing a fresh installation. You will be prompted to select your type of database. If you followed the guide so far, you should select "MariaDB". The installer will then request your database information, if you followed the guide, you need to provide the following input: Hostname: localhost Port: 3306 User: mangos Password: password You can now choose into several options: ReInstall the realm database, containing all the realms information and the accounts ReInstall the world database, containing all the world configuration ReInstall the characters database, containing all the characters information Update the realmlist to setup an initial game server By default, all options must be toggled. The installer will now perform the database import. Extract Game Data: This step will copy the extractors to the wow game location, extract dbc, maps, mmaps and vmaps and copy these extracted data to your installation directory. The installer will automatically look for a suitable WoW client into your /home directory. If it doesn't find anything, you will have to provide your game location path. If the provided path doesn't contain any game data, the installer will exit. The extractor steps allows you to select the artifacts you want to extract: DBC and Maps, which are the minimum set of data you need to extract Mmaps which are the movement maps, based on vectoriel calculation, required for an efficient pathfinding Vmaps which are the virtual maps, used for collision detection and LoS detection The Mmaps extraction is taking several hours, you will have the time to sleep or drink several coffees. :-) Congratulations ! You almost did it ! Still few steps to perform before you can play on your preferred game. First of all, you need to switch to your run user. If you used mangos, the command will look like: su - mangos You need then to go to the configuration directory of your installation, if you installed Vanilla, it will look like the following command: cd /home/mangos/zero/etc Copy the realmd.conf.dist and mangosd.conf.dist files to their expected name: cp realmd.conf.dist realmd.conf cp mangosd.conf.dist mangosd.conf Edit the realmd.conf and find the line LoginDatabaseInfo. Provide your database information, according to this guide and if you have installed Vanilla, it should look like: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" Save your file and edit the file mangosd.conf. You need to provide the database information for the three database we have configured with our installer: LoginDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_realm" WorldDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_world" CharacterDatabaseInfo = "127.0.0.1;3306;mangos;password;zero_characters" Save your file and go back to the 'root' user: exit Make sure it keeps running ! What could be cooler than having the MaNGOS server starting automatically with your server ? Not much... so let's configure systemd to do so ! First of all, we need to tell it that we have two new services. Declare them by creating the corresponding files: touch /etc/systemd/system/realmd.service touch /etc/systemd/system/mangosd.service # Or give it a better name like zero.service if it's a vanilla gaming server for instance. Now, edit the /etc/systemd/system/realmd.service file and add the following content (Replace the installation path and the run user by the settings you have provided during the installation): [Unit] Description=Realmd service After=network.target mariadb.service [Service] Type=simple User=mangos Environment=LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ExecStart=/home/mangos/zero/bin/realmd -c /home/mangos/zero/etc/realmd.conf Restart=on-abort [Install] WantedBy=multi-user.target Save this file and edit the /etc/systemd/system/mangosd.service file (or the better name you gave to it) with the following content (same remark than above the installation path and the run user): [Unit] Description=WoW Vanilla service After=network.target mariadb.service [email protected] [Service] Type=simple User=mangos ExecStart=/home/mangos/zero/bin/mangosd -c /home/mangos/zero/etc/mangosd.conf WorkingDirectory=/home/mangos/zero/bin StandardInput=tty TTYPath=/dev/tty3 TTYReset=yes TTYVHangup=yes Restart=on-abort [Install] WantedBy=multi-user.target We are almost there ! You now need to tell systemd to reload its configuration: systemctl daemon-reload And let's start our processes to verify that they work: systemctl start realmd systemctl start mangosd To verify that it worked, execute the following command: systemctl status realmd systemctl status mangosd If it's working properly, you should have an output indicating you the success status for both service. The last step is to tell systemd to execute them at startup, for this, execute the following commands: systemctl enable realmd systemctl enable mangosd Congratulations ! You are now done with the MaNGOS setup on Fedora 25 :-) WARNING! If you have installed mangos into your home directory, the SELinux will block your execution. To disable this check, you can: Install Mangos elsewhere Update the SELinux parameters To update it, you need to edit the file /etc/selinux/config and change the following line: SELINUX=PERMISSIVE You can now reboot your computer to verify that everything is indeed started: reboot
  15. Hi there I followed the installation guide for centos and have an issue when connecting to the server. When logging in the realmchoice opens and I'm clicking on the Servername, but the realmchoice just opens again and again. What can I do now? The server is just inside my LAN and will be used by clients inside my LAN. Regards Alzieh
  16. Got also a extraction problem with the extractor shell at mangosthree dev21. no errors in the log, he just won't start running after it says it does.
  17. Running ubuntu 16.04 with an apt-get of everything needed to compile. Compiles and installs as it should. Copy over game client and extract dbc/maps/vmaps/mmaps. End up with 39 locations for maps. If I did this on Windows (I tried it for sake of just copying the maps from there) and it has upwards of 89 locations. When I move the stuff over to the bin folder and run mangosd, mangosd reports that maps missing, everything in the 5xxxxxx.map range isn't there. On Windows, they are. I extracted them on Windows and copied them to the bin folder but am told by mangosd that the maps are incompatible with what I'm running. Even though the two things are the same version (least I imagine they are). Last map extracted is 4694735.map. I don't know what else to do, is there something I should put in the server/src/tools/Extractor_projects/map-extractor/System.cpp file for the map-extractor to see the other MPQs? I did have this client attach to a cmangos server and everything worked so I am inclined to believe that it isn't an incomplete version of the game. And the client is updated to 2.4.3 and detected as such. Thanks again for reading and any input is much appreciated. edit: I had cloned develop21 braches. That is what I wanted and thats what I ended up with. Solution in posts #3 and #4.
  18. Приветствую!Подскажите как собрать ядро со скриптами lua под операционную систему linux на примере Debian !

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions

Repositories

The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
×
×
  • Create New...