Jump to content
  • 0

Ubuntu 14.04 install guide



Hi all,

After a fair bit of trouble, I decided to share this guide on how I got things working.

It'll be a living document so please bear with me (formatting will improve after I'm done compiling everything here). This specifically assumes you're running Ubuntu 14.04 x86_64. Anything else is specifically outside the scope of this document. This assumes a functional knowledge of Linux and the basic tools available. '$' denotes commands to run.

Things you'll want:

-SSH access to your machine along with sudo permissions.

-You will want at least one server. Two is better for separating mySQL to it's own machine but not required (a lot of my testing takes place on one machine).

-You specifically want to use mysql5.6 for the mysql_conf_editor. Most of the commands will fail without.


Let's get started:

Start by setting up your hostname, sudoers file and any disk volumes you want to use. You may also want to add your ssh key to the box to make accessing it easier. Run the following commands as root or add sudo before each.

$ apt-get update && apt-get upgrade

$ apt-get install build-essential gcc g++ automake git-core autoconf make patch libmysql++-dev libtool libssl-dev grep binutils zlibc libc6 libbz2-dev cmake subversion libboost-all-dev mysql-client-5.6 screen libace-dev

The above commands you're setting up two servers (one for the realm/mangos, another for your mysql database. If you're using one server, also add mysql-server-5.6 to the above command).

Now get the 'getmangos' script by running the following:

$ git clone https://github.com/mangoszero/server.git server --recursive -b develop21

In the above command, ensure you use 'server' after the repo. Also, change 'develop21' to 'release20' if you want the stable branch. However, develop21 seems to be widely used

Once things are downloaded, move to ~/server/linux. Bear in mind I'm doing this from /root. Inside you'll find 'getmangos.sh'. I usually copy this to my base home folder so I can edit it and not lose it. e.g.:

$ cp getmangos.sh ~

At this point you might want to diverge and setup mysql-server and upload your Windows WoW directory in full to a known directory. This will come in handy later when extracting the resources.

Once you've setup mysql and upload your WoW directory, continue on (I'll flesh this out if people have trouble).

It's time to run 'getmangos.sh' and follow the prompts.

$ bash ~/server/linux/getmangos.sh 

or, if you moved the script as recommended:

$ bash ~/getmangos.sh 

Take note here:

Select options 1, 2, 3, 4, 5. Only select #6 if your database is already setup. You can specifically come back to this menu and resume steps later (bearing in mind not to delete your source directory or installation in the event you're prompted). Press yes throughout until you get to 'Choose WoW Release'. I choose 0 here and you should too.

Next prompt is important and where you'll get stuck if you didn't follow the instructions properly. Specifically enter '/root' for this prompt and nothing else (if you're root). Your git clone above should have created /root/server if you did this right. You'll be informed the path already exists, select 'No' unless you know what you're doing or are starting over.

'Installation Path' is next and is important also. I install to '/Wow' and I recommend it if you added a large data volume.

Follow the prompts until you get to 'Clone or update MaNGOS'. Select '0'. If you have problems, rerun the script. I used to have a lot of problems so I edited the script at line #651-653 and added the following instead "git clone https://github.com/mangoszero/server.git server --recursive -b develop21". If you run into problems on this commend, I recommend editing /root/server/linux/getmangos.sh to look like this around line #650:

  # use existing repository
  if [[ $CLONE = *2* ]]; then
    git clone https://github.com/mangoszero/server.git server --recursive -b develop21
    Log "Using existing local repository" 1

If you do that, select option '2', which will simply clone the repo.

You should now be prompted with a new screen called 'Build Options'. I usually pick #2, 3, 5, 6, 7. Omit #5 if this isn't your first time building it and already have the client tools installed/maps extracted. You'll want the client tools later.

After that it'll ask if you want to build/install Mangos across two prompts. Just say yes.

If everything goes well and you followed the steps above carefully, you should see it install for quite awhile. Next you need to extract your map data from your Wow client folder. You only need to do this once per version (e.g., you can run many servers from the same extracted data but not new releases). E.g., I have 2 release20 servers and I just copy dbc, *maps, etc into the new bin directory. Develop21 requires me to build new extraction tools and run the extraction again.

Sometimes the extraction process fails. In which case what I do is the following:

Go into your installation directory.

$ cd /Wow/bin/tools

Copy all the tools to your Wow client folder. My folder structure is as follows:



So you would do this:

$ cp /Wow/bin/tools/* /Wow/Wow-client

$ cd /Wow/Wow-client

$ bash ExtractResources.sh

You'll be prompted to select what you want extracted. I pick everything for a new release but you can pick and choose. Make sure that if you're running a multi-core machine that you enter '4' when prompted about threading.

This will take awhile but once it's done, you'll be left with the following folders:





Copy all of these to your /Wow/bin folder:

$ cp -r  /Wow/Wow-client/dbc /Wow/bin

Repeat the above for the other folders mentioned.


Once you're done that, you have two things left to do. Ensure your database is setup properly and edit your server configs.

Let's edit the server configs first then ensure the DB is working.

$ cd /Wow/etc

Copy mangosd.conf.dist to mangos.conf and realmd.conf.dist to realmd.conf

Edit both of them. The important section in mangos.conf has the following values:

LoginDatabaseInfo            = "dns/IP;3306;mangos;*****;realmd"
WorldDatabaseInfo            = "dns/IP;3306;mangos;*****;mangos"
CharacterDatabaseInfo        = "dns/IP;3306;mangos;*****;characters"
ScriptDev2DatabaseInfo       = "dns/IP;3306;mangos;*****;mangos"

Make sure you change 'dns/IP' to reflect your mysql instances address. In addition, make sure you change the 3rd field to your DB username and then set the password. Your databases may be slightly differently. Sometimes they're called 'character0' or 'zero_*'. 

Do the same for realmd.conf:

LoginDatabaseInfo      = "dns/IP;3306;mangos;*****;realmd"

What's interesting about this section is that in the future if you want to scale, you can actually run realmd on a separate server along with the database. For now everything is going to be in one DB.

Now that's done you just need to setup the database if things didn't happen automatically earlier. Confirm you're set by checking the database/tables.

$ mysql -u *username* -p*password*

$mysql> show databases;

$mysql> use mangos;

$mysql> select * from db_version;

If you used release20, your database should look kind of like this:

| version                                               | creature_ai_version                                  | required_20007_01_Rel20_Release_Prep |
| ZeroDatabase 2.0.18 for MaNGOSZero / ScriptDev 20004+ | MaNGOSZero Artificial Creature Intelligence Database | NULL                                 |
| MaNGOSZero Database 2.0.11 Rev 20007_18               | EventAI and Scripts available                        | NULL                                 |

Develop21 will look kind of like this:

mysql> select * from mangos.db_version;
| version | structure | content | description    | comment                                   |
|      21 |        11 |      73 | Script_Binding | Base DB Install from 21000_01 to 21.11.73 |

If it doesn't, you'll likely want to download the appropriate database again and fix things up. That's a separate post - add a note if you'd like more info.

If you're set, you just need to make your server accessible by doing the following:

$mysql> update realmd.realmlist SET localAddress='dns/IP' WHERE id='1';

You may also want to edit the address and name fields. You can infer how to do that from the command above.


In theory you should be all set now. All that's left to do is start mangos and realmd and login. For now we'll use 'screen' but I'm working on a runit.

$ cd /Wow/bin

$ screen ./mangosd

Watch this command and make sure not too many red messages appear. To escape screen but keep it running, just hit CTRL + A then CTRL + D in quick succession.

Now start realmd

$ screen ./realmd

That's it! Now if you update the realmlist.wtf file on your personal computer's Wow client to look like this: 'set realmlist dns/IP'. You might also have to edit WTF/Config.wtf to include your dns/IP and possibly remove 'SET realmName "****"' near the bottom.

Now you can start your Wow client and try out the administrator account. The login is Username: ADMINISTRATOR, Password: Administrator

I hope this helps someone. It was compiled through ~25 hours of trial and error.







Link to comment
Share on other sites

7 answers to this question

Recommended Posts

3 hours ago, publiccert said:

Can you provide an error message or additional information? Thanks!

Hello again,


Got the compilation to work, the problem i have if when i start the extraction tool.

so i copied the contents of the tools to the client root, i start extractresources.sh, choose all and then these are the errors i get:

Mon Jan 16 00:38:12 CET 2017: (Re)created map 47
./MoveMapGen.sh: 172: ./MoveMapGen.sh: ./movemap-generator: Permission denied

EDITED : Oh man i feel such a noob, was indeed a permission issue, stupid me ... sigh 1 am here been on it for 4 hours now lol ...

Link to comment
Share on other sites

On 2.1.2017 at 7:01 PM, publiccert said:

Does anyone have any feedback? Is this of any use? If so I'll spend a bit more time polishing it. Thanks!

Thank you, just using it right now..


Maybe you could add some information, where it is necessary to change things, when you want to build in foreign language? In example to have a deDE Server?

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use