Jump to content

WIKI Activity

Showing articles posted in for the last 365 days.

This stream auto-updates     

  1. Last week
  2. Why you anserw default question in opossit way? Would you like to use LXD clustering? (yes/no) [default=no]: You should anserw NO or hit enter to accept DEFAULT=no anserw...
  3. i dont understand !! for the comannd : sudo lxd init can you explain !! what is the good command for this question? you tell respond Y to all question [email protected]:~# sudo lxd init Would you like to use LXD clustering? (yes/no) [default=no]: y What name should be used to identify this node in the cluster? [default=localhost]: What IP address or DNS name should be used to reach this node? [default=212.227.191.39]: Are you joining an existing cluster? (yes/no) [default=no]: y IP address or FQDN of an existing cluster node:
  4. LXD installation is very simple, believe me Better to use LXD, why? because you do not mess at your host system. But ofcourse you can use this guide to setup on your Ubuntu host.
  5. Earlier
  6. This is exactly what i need to get an istallation on my Ubuntu server.. only one thing you gloss over the LXD parts without any detailed installation guides. sadly i am new to LXD and i am getting promted with guestions your guide tells me to answer yes to the leads on to things that i am utterly unably to (due to my own ignorance i admit) finish. id love to run my lil test server in an Linix env for the very usability you state but alass i cant figure out how to use it. other than that Exellent guide i am shure ill get it to work without LXD.
  7. 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 defaults 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
  8. Original credit @H0zen rewritten in part by myself. Our covenant servers hold lots of user and character data, we need to make sure that is safe and one of the tasks we do is multiple daily backups to an offsite FTP server. This script is ran via cronjob and can be ran as many times a day as you like. You will need to run things like "yum install ftp" for the ftp part and have zip installed. Make sure you change the parts suck as yourbackupfilename, servername, MySQL/FTP details, the password on the zip file and the folder path "remotefolder" in the FTP transfer section. #!/bin/sh # Archive & file variables ARCHIVE=yourbackupfilename`date +"%F"` OLDARCHIVE=yourbackupfilename-`date --date '-5 days' +"%F"` FILE=servername-Realmd_`date +"%F"` FILE0=servername-ZERO-Chars_`date +"%F"` FILE1=servername-ONE-Chars_`date +"%F"` FILE2=servername-TWO-Chars_`date +"%F"` # MySQL variables DBSERVER=127.0.0.1 REALMD_DATABASE=realmd CHARACTERSS_ZERO_DATABASE=characters-classic_servername CHARACTERSS_ONE_DATABASE=characters-tbc_servername CHARACTERSS_TWO_DATABASE=characters-wotlk_servername USER=rootuser PASS=rootpassword # FTP transfer on demand connection & login details FTP_USER=ftpuser FTP_PASS=ftppass FTP_HOST=ftphostname # Remove previous .zip files if multiple daily backups are being ran echo "Checking and removing as needed old .zip files locally." rm -f $ARCHIVE.zip rm -f $OLDARCHIVE.zip # Dump MySQL database in .sql files into /root echo "Dumping .sql files to /root" mysqldump --opt --user=${USER} --password=${PASS} ${REALMD_DATABASE} > ${FILE}.sql mysqldump --opt --user=${USER} --password=${PASS} ${CHARACTERSS_ZERO_DATABASE} > ${FILE0}.sql mysqldump --opt --user=${USER} --password=${PASS} ${CHARACTERSS_ONE_DATABASE} > ${FILE1}.sql mysqldump --opt --user=${USER} --password=${PASS} ${CHARACTERSS_TWO_DATABASE} > ${FILE2}.sql echo ".sql files have been dumped to /root." # Zip dumped MySQL .sql files and password the zip file echo "Zipping dumped .sql files." zip -e -P backupfilepassword $ARCHIVE.zip $FILE.sql $FILE0.sql ${FILE1}.sql ${FILE2}.sql # Show the user the result echo "${ARCHIVE}.zip was created!" # Move the file via ftp to remote NAS echo "Initiating FTP transfer on demand." ftp -n $FTP_HOST <<END_SCRIPT quote USER $FTP_USER quote PASS $FTP_PASS cd remotefolder/remotefolder binary delete $OLDARCHIVE.zip put $ARCHIVE.zip quit END_SCRIPT # FTP transfer on demand ends # Tidy up files in the /root folder rm -f /root/*.sql echo "Clearing dumped local .sql files." Mangos Backup Cron Script.txt
  9. 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
  10. Please provide the Distribution related to this topic since there is no firewall-cmd command in Debian 9 for example.
  11. Hi there. Since language translation automation is very nice since few years, it would rather be more quick to let a bot parse some bulk 'todo' strings. and then just have to "review" the translation I will have a try with French missing translations
  12. No, sorry. But from what i heard, it's pretty similar to mysql so try following the same things. Otherwise, i'm sure the forums will be able to help you
  13. Do you have any instructions on how to manually install Mangos using MariaDB ?
  14. cloudoo

    How to use EasyBuild

    yeah,i fix it , i resetup 64 bit openssl.Thank you Natrist!!
  15. Natrist

    How to use EasyBuild

    I haven't looked up the error code, but if I recall correctly it means there's a 32-bit/64-bit conflict in your application. You may be calling 64-bit libraries from your 32-bit compiled program or vice-versa.
  16. cloudoo

    How to use EasyBuild

    i'v already setup vcredist2015, may be miss some dll file?
  17. cloudoo

    How to use EasyBuild

    $ git log commit ac6d83f9ba4234936546b583761ce56391612d21 Author: H0zen <[email protected]> Date: Sun Jun 16 16:44:19 2019 +0300 Fixed some annoyances - CONF_INSTALL_DIR is no longer hardcoded, except for the case when it's explicitely specified via -D in cmake - extractor scripts are now copied in tools directory - fixed some changes in ACE which made servers crash in FreeBSD commit 03e2f858201a96ee0d78b979679bd586b1bade86 Merge: a521df1 f6fc8b6 Author: Foereaper <[email protected]> Date: Sat Jun 1 18:20:07 2019 +0200 Merge pull request #76 from ValeTheVioletMote/ValeTheVioletMote-rolling-fix Segmentation Fault on Bot Loot Rolling - Fix commit f6fc8b65555153efbe450174b511233406a504a9 Author: Vale the Violet Mote <[email protected]> Date: Sat Jun 1 11:51:07 2019 -0400 :...skipping... commit ac6d83f9ba4234936546b583761ce56391612d21 Author: H0zen <[email protected]> Date: Sun Jun 16 16:44:19 2019 +0300 Fixed some annoyances - CONF_INSTALL_DIR is no longer hardcoded, except for the case when it's explicitely specified via -D in cmake - extractor scripts are now copied in tools directory ...skipping... commit ac6d83f9ba4234936546b583761ce56391612d21 Author: H0zen <[email protected]>79679bd586b1bade86 Date: Sun Jun 16 16:44:19 2019 +0300 Author: Foereaper <[email protected]> Fixed some annoyances7 2019 +0200
  18. onixiya

    How to use EasyBuild

    Still doesn't answer the question, type this in the root directory of the source code git log Paste whatever comes up in the commit field
  19. cloudoo

    How to use EasyBuild

    i'v installed mysql 5.7.14 32bit version,but check is not right ,I can't select win32 model to build... how can i fix it ?
  20. cloudoo

    How to use EasyBuild

    mangosZero master branch
  21. onixiya

    How to use EasyBuild

    What git revision is your source code? Or when did you clone it?
  22. cloudoo

    How to use EasyBuild

    vs2015 ,i get some error, why? :\01_project\10_mangos\server\src\tools\Extractor_projects\vmap-extractor\vmapexport.cpp(396): warning C4459: declaration of 'preciseVectorData' hides global declaration [D:\01_project\10_mangos\server_build\src\tools\Extractor_projects\vmap-extractor.vcxproj] D:\01_project\10_mangos\server\src\tools\Extractor_projects\vmap-extractor\vmapexport.cpp(81): note: see declaration of 'preciseVectorData' TileThreadPool.cpp VMapExtensions.cpp ExtractorCommon.cpp shared.lib(DatabaseMysql.obj) : error LNK2019: unresolved external symbol mysql_server_init referenced in function "public: __cdecl DatabaseMysql::DatabaseMysql(void)" ([email protected]@[email protected]) [D:\01_project\10_mangos\server_build\src\realmd\realmd.vcxproj] shared.lib(DatabaseMysql.obj) : error LNK2019: unresolved external symbol mysql_server_end referenced in function "public: virtual __cdecl DatabaseMysql::~DatabaseMysql(void)" ([email protected]@[email protected]) [D:\01_project\10_mangos\server_build\src\realmd\realmd.vcxproj] shared.lib(DatabaseMysql.obj) : error LNK2019: unresolved external symbol mysql_thread_init referenced in function "public: virtual void __cdecl DatabaseMysql::ThreadStart(void)" ([email protected]@@UEAAXXZ) [D:\01_project\10_mangos\server_build\src\realmd\realmd.vcxproj] shared.lib(SqlDelayThread.obj) : error LNK2001: unresolved external symbol mysql_thread_init [D:\01_project\10_mangos\server_build\src\realmd\realmd.vcxproj] shared.lib(DatabaseMysql.obj) : error LNK2019: unresolved external symbol mysql_thread_end referenced in function "public: virtual void __cdecl DatabaseMysql::ThreadEnd(void)" ([email protected]@@UEAAXXZ) [D:\01_project\10_mangos\server_build\src\realmd\realmd.vcxproj]
  23. onixiya

    How to use EasyBuild

    Do you have the vcredist for whatever vs you built with? Like if you built it with vs15, do you have vcredist 2015?
  24. cloudoo

    How to use EasyBuild

    it's build success,but failed run realmd.exe or mango.exe . it's throw 0xc000007b error. how can i fix it ?
  25. antz

    How to use EasyBuild

    I have added a spaces check in the new version of easybuild currently in testing. - Hopefully it will ready soon
  26. It's simple really, just create a GitHub user and password, then use them. GitHub are tightening their security up all the time.
  27. Thats because the develop21 branch no longer exists, just clone the master branch. - I have updated the above docs to try and cover the changes.
  1. Load more activity

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...