Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 08-05-2010, 06:49 PM
kavren
Sarnak
 
Join Date: Feb 2007
Posts: 50
Default Windows Server Setup

I have been reading
• http://www.eqemulator.net/wiki/wikka.php?wakka=VS2008
o ZandigSlaytanic
• http://www.eqemulator.net/wiki/wikka.php?wakka=ValesEQ
o ValesEQ
• http://www.eqemulator.net/wiki/wikka...a=ProjectEQSVN
o ZandigSlaytanic
guides to setup a server, and i usually have to traverse all 3 guides to make the server I want. I have taken the stuff they have written and combined it into one and it has helped me out a lot. I wanted to re-present their work in one complied format for those who may want to see it in a different manner.

The below text is a reformatted version of "ZandigSlaytanic" and "ValesEQ" work from the guides above.


Stated Objective
To create an EQEmu server that:
• Is compiled from the latest source
• Has the latest maps and quests (which are stored in an svn checked folders so they can be updated on the fly)
• Works as a dedicated LAN server

System
This was all done on a Windows Server 2003 Standard Edition (SP2) O.S. (32 bit). It is a VM. It had 1 gig of RAM, 1 cpu, and a 20 gig Hard Drive. The server was patched to August 2010.

Conceptual Overview
Install and Gather Starting Files
(Phase 1)
• Install Extraneous Software (winrar, etc…)
• Create EQEmu and EQEmuDB SVN Folders
• Install ActivePerl
• Install MySQL
• Install Navicat Lite
• Install Zlib
• Install Microsoft Visual C++ 2008 Express Edition and set it up
Compile
(Phase 2)
• Compile Source
Setup Databases, Adjust Server Settings, and Gather More Files
(Phase 3)
• Setup PEQ DB
• Install EQEmuLoginServer
• Gather EQEmuLoginServer files (.ini, .conf, .dll) from EQEmu Build
• Setup PEQLoginDB DB and Logins
• Finalize Connection Settings (eqemu_config.xml, eqemulogin.ini)
• Setup Maps and Quest SVN Folders
• Import Spell files
• Create BAT Launcher file
• Remove Glooming Deep as the Starting Point

Install and Gather Starting Files
(Phase 1)

Install Extraneous Software (winrar, etc…)
• Install the following software (you can find links to this software at the bottom of this document, or just by googling it)
• Winrar
• Acrobat Reader
• TortoiseSVN

Create EQEmu and EQEmuDB SVN Folders
• Create a folder called "EQEmuSVNFiles" off of the root drive
• Create a subfolder called "EQEmu"
• Right-click that folder, and paste in the SVN address: http://projecteqemu.googlecode.com/svn/
• Create a subfolder called “DB”
• Right-click that folder, and paste in the SVN address: http://projecteqdb.googlecode.com/svn/trunk
Install ActivePerl
• Perl 5.10.0.1007 is what we'll use. You can find links to this software at the bottom of this document, or just by googling it.
• This is very important! If you have another version of perl currently installed, start at step 1. If you don't, start at step 5 and go on from there.
• Be sure to install to the directory of c:\Perl
• 1. Backup any customizations that you need to.
• 2. Uninstall it via control panel.
• 3. Delete the c:\perl directory and empty it from the recycle bin.
• 4. REBOOT!
• 5. Install Perl 5.10.0.1007
• 6. REBOOT! The next two steps will not work until you do (at least they wouldn’t for me)
• Next make sure you are connected to the internet and type the following commands from a DOS command prompt
• ppm install DBI
• ppm install IO-stringy
Install MySQL

• MySQL 5.0.82 is what we'll use. You can find links to this software at the bottom of this document, or just by googling it.
• Make sure you install MySQL (assumed to be in c:\MySQL, which is the recommended location) with Developer Components (C Include Files / Lib Files). If you've already installed MySQL without this option just use your Windows Control Panel to Change and add the option.
• NOTE: In mysql 5.1.* they introduced a new reserved keyword 'range' into the sql language, unfortunately the items table in the peq database already has a field named "range". To avoid this conflict we're using a 5.0.* version.
• NOTE: This guide assumes you don't have mysql installed. If you do, please take the time to do backups of your data before proceeding. Make sure your data is backed up properly.
• Install mysql 5.0.82 as follows:
• Choose Custom Setup Type and Next
• Install all options, and change the install path to c:\mysql\
• It will install MySQL, show you a couple of ads and then you'll be able to "Configure the MySQL Server now" by checking a checkbox, do that now.
• Choose Detailed Configuration, Click Next
• Choose Server Machine, Click Next
• Choose Multifunctional Database, Click Next
• Click next again for InnoDB Tablespace Settings
• Choose Online Transaction Processing (OLTP), Click Next
• Check Enable TCP/IP Networking making sure the port Number is 3306, Un-Check enable Strict Mode, Click Next
• Choose Best Support for Multilingualism, Click Next
• Check for both Install As Windows Service (Service name should be MySQL), and for Include Bin Directory in Windows PATH, Click Next
• Now enter your New Root Password, Confirm, and do not check for remote machine Access. Don?t select Create An Anonymous Account. Click Next
• Now click on Execute and wait for it to finish. Once it is done, click Finish.
• You should now have the directories:
• C:\MySQL\include
• C:\MySQL\lib
Install Navicat lite

Install ZLib
• Install Zlib, in c:\zlib
• Copy ZLIB1.DLL to the SYSTEM or the SYSTEM32 directory.
Install Microsoft Visual C++ 2008 Express Edition and set it up
• Install Microsoft Visual C++ 2008 Express Edition. You can find links to this software at the bottom of this document, or just by googling it.
• Update your Microsoft Visual C+(+) 2008 Express Edition directories.
• Using Microsoft Visual C+(+) 2008 Express Edition, from the menu bar select:
• 'Tools/Options/Projects and Solutions/VC+(+) directories' and add the following directories using the dropdown "Show directories for" box:
• Include files: C:\mysql\include
• Include files: C:\perl\lib\CORE
• Include files: C:\zlib\include
• Library files: C:\mysql\lib\opt
• Library files: C:\perl\lib\CORE
• Library files: C:\zlib\lib
• use the "New Line (Ctrl-Insert)" to add the above directories in the appropriate section.

Compile
(Phase 2)
Now on to the compiling
• Using Microsoft Visual C+(+) 2008 Express Edition do the following:
• First choose which version of EQEmu you want to compile: (the most stable and recommended is located in the directory 'trunk/EQEmuServer') There may also be a 'branches' directory containing directories of usually test code that is not yet official which you may want to compile and test. However 'trunk/EQEmuServer' is recommended and is now current.
• 'File/Open/Project/Solution' and open the file 'Server.sln' (it should have a small number 9 in the upper right corner of the icon).
• Now select: 'Build/Clean Solution'
• Then: 'Build/Configuration Manager'
• and change the "Active solution configuration" to: 'Release' and click "Close"
• NOTE: to enable the use of Bots on your server select 'ReleaseBots' and click "Close"
• More information on the Bots system can be found here:http://www.eqemulator.net/forums/forumdisplay.php?f=676
• Finally select 'Build/Build Solution' and it will begin to compile which will take some time. During compiling you will get a bunch of warnings which can be ignored.
• After compiling finishes you should have:
• Build: 5 succeeded, 0 failed, 0 up-to-date, 0 skipped
• Create a folder called EQEmu off of your root drive
• Now use the following files and folders from your new build, and place them in your newly created EQEmu folder:
• changelog.txt
• BUILD directory: Chatserver.exe, EMuShareMem.dll, World.exe, Zone.exe
• EQLAUNCH/RELEASE directory: eqlaunch.exe
• UTILS directory: mail_opcodes.conf, opcodes.conf, patch_6.2.conf, patch_Anniversary.conf, patch_Live.conf, patch_SoD.conf, patch_SoF.conf, patch_Titanium.conf
• UTILS directory: all of the files in the DEFAULTS folder
• Place all the subfolders and files from the *defaults* dir into the "EQEmu" folder,
• Then place into said "EQEmu" folder: Chatserver.exe, EMuShareMem.dll, World.exe, Zone.exe, eqlaunch.exe, mail_opcodes.conf, opcodes.conf, patch_6.2.conf, patch_Anniversary.conf, patch_Live.conf, patch_SoF.conf, patch_Titanium.conf

Setup Databases, Adjust Server Settings, and Gather More Files
(Phase 3)
Setup PEQ DB
• Navigate to folder c:\EQEmuSVNFiles\DB that you created and setup earlier. You should see a file called: peqdb_RevXXXX.sql.gz. Extract it. This is the "bulk" of the database. Now keep an eye on the revision number as it signifies the correlation between the server number. Example: If you have a Server Rev774, you can run peqdb_Rev859.sql since it's compatible with the server revision which is Rev774. If you update to a newer server revision, then you need to update the database if the revision of the server surpasses it. I.E. DB Rev# > Server Rev#
• Open Navicat lite
• double click on local
• right click on local, new database
• name the new database PEQ
• Now open a command prompt and go to the folder that has the peqdb_RevXXXX.sql you just extracted
• run this command
o mysql -uUSERNAME -pPASSWORD PEQ < peqdb_RevXXXX.sql
o mysql -uUSERNAME -pPASSWORD PEQ < load_player.sql
• Once it's done, you're all set! Now all that's left is to double-check the revisions and set up the new EQEMuLoginServer.
Install EQEmuLoginServer
• Download and extract the EQEmuLoginServer.zip file. You can find links to this software at the bottom of this document. Copy the EQEMuLoginServer.exe into C:\EQEmu folder.

Gather EQEmuLoginServer files (.ini, .conf, .dll) from EQEmu Build
• Go to the folder where you downloaded the server sources (C:\EQEmuSVNFiles\EQEmu) and navigate to:
o trunk > EQEmuServer > EQEmuLoginServer > login_util.
 Then copy: eqemulogin.ini and login_opcodes.conf to your server folder (C:\EQEmu).
• Next, navigate to:
• trunk > EQEmuServer > EQEmuLoginServer > login_util > ms >debug
• Then copy: EQEmuAuthCrypto.dll to your server folder (C:\EQEmu)

Setup PEQLoginDB DB and Logins
• Open Navicat lite
• double click on local
• right click on local and create a new database
• name it PEQLoginDB
• Now open a command prompt and go to the below folder
• (C:\EQEmuSVNFiles\EQEmu\trunk\EQEmuServer\EQEmuLog inServer\login_util)
• run this command:
• mysql -uUSERNAME -pPASSWORD PEQLoginDB < EQEmuLoginServerDBInstall.sql
• Here's an SQL statement to make accounts. Save the below statement as accounts.sql onto your server’s desktop.
• INSERT INTO tblLoginServerAccounts (AccountName, AccountPassword, AccountEmail, LastLoginDate, LastIPAddress) VALUES('Admin', sha('password'), 'admin@somewhere.com', now(), '127.0.0.1');
• Edit the above statement as follows:
• After “VALUES”, edit 'Admin' and 'password' to what you would like the login information to be. Edit 127.0.0.1 to the i.p. address of the client machine you will be logging in from.
• For security purposes, you can delete the Admin account that's entered by default in tlbloginserveraccounts by left-clicking on it so it's yellow, and then pressing CTRL+DEL.
• On to Setting up the world server. Here's the sql statement to make the world server entry. Save the below statement as worldreg.sql onto your servers desktop.
• INSERT INTO `tblworldserverregistration` (`ServerID`, `ServerLongName`, `ServerTagDescription`, `ServerShortName`, `ServerListTypeID`, `ServerLastLoginDate`, `ServerLastIPAddr`, `ServerAdminID`, `Note`) VALUES ('1', 'NameOfServer', 'ServerTagDescription', 'ShortNameOfServer', '2', NULL, NULL, '1', NULL);
• Edit the above statement as follows:
• After VALUES, edit the following:
• NameOfServer is the actual name of the server.
• ShortNameOfServer is the shortname for client files in your game directory (i.e. UI_Soandso_ShortNameOfServer.ini).
• ServerTagDescription is what you will see in parenthesis after the server's name - i.e. NameOfServer(Come and have fun!)
• The number 2 signifies what kind of server it is. 1 = Legends, 2 = Preferred, 3 = Standard.
• In navicat, right click the PEQLoginDB DB and select “Execute SQL File…” and choose accounts.sql from your desktop. Do the same again but choosing worldreg.sql from your desktop.

Finalize Connection Settings (eqemu_config.xml, eqemulogin.ini)
• First of all, let’s edit the eqemu_config.xml.full file in your server directory. Make sure you use the eqemu_config.xml.full one and not the eqemu_config.xml. The .full version has the whole configuration and what we need to edit inside. You can just delete the eqemu_config.xml and then delete the .full extension at the end of the file.
• Up at the top of the file, you should see:
• <world>
• <shortname>NameOfServer</shortname>
• <longname>ShortNameOfServer</longname>
• The NameOfServer and ShortNameOfServer text should match with what you put in to the tblworldserverregistration table above just a few steps back. Please keep in mind that the word Server should not be included in the server's actual name.
• <!-- Only specify these two if you really think you need to. (read: You don't) -->
• <address>server.dyndns.org</address>
• <localaddress>192.168.0.1</localaddress>
• Uncomment out the <-- and --> so it looks like the text above
• server.dyndns.org should be your dyndns address (I just use my internal IP since I’m on a LAN)
• and the 192.168.0.1 (or whatever you choose your static IP to be) should be the LAN IP of the server's PC

• <!-- Loginserver information. Defaults shown -->
• <loginserver>
• <host>server.dyndns.org</host>
• <port>5998</port>
• <account></account>
• <password></password>
• </loginserver>
• server.dyndns.org should be your dyndns name (I just use my internal IP since I’m on a LAN)

• <!-- Database configuration, replaces db.ini. Defaults shown -->
• <database>
• <host>localhost</host>
• <port>3306</port>
• <username>MySQL Account</username>
• <password>MySQL Password</password>
• <db>peq</db>
• </database>
• MySQL Account and Password are the username and password you made when install MySQL
• The username is most likely root and then whatever you used for your password
• peq is the name of the database
• Save your changes and open up eqemulogin.ini located in the server folder
• Port=5998
• DumpPacketsIn=true
• DumpPacketsOut=true
• Trace=true
• DatabaseServerName=localhost
• DatabaseCatalogName=PEQLoginDB
• DatabaseUserName=MySQL Login
• DatabaseUserPassword=MySQL Password
• OPCodePathAndFileName=login_opcodes.conf
• PEQLoginDB is the name of the Login Database
• MySQL Login and MySQL Password is the same as what you used above just a moment ago

Setup Maps and Quest SVN Folders
• This is how to keep all of your maps and quests updated. In your server folder, you might see a file called .keep located in your Maps and Quests folder. Delete this file before continuing with the following. Also, keep in mind that when you do download to make sure that there aren't duplicate folders in the directory such as maps/maps.
• In your server folder, right-click the Maps folder and select SVN Checkout. In the URL of Repository section, paste:
• http://eqemumaps.googlecode.com/svn/trunk/Maps
• This can take a very long time to download as the map files are pretty large
• In your server folder, right-click the quests folder and select SVN Checkout. In the URL of Repository section, paste:
• http://projecteqquests.googlecode.com/svn/trunk/quests
• This keeps your quests updated, and is highly recommended to maintain as it's updated regularly!
• NOTE: The plugins folder in the quests directory will have the plugins that go in the server directory plugins, copy them from the quests/plugins folder to the build/plugins folder.

Import Spell files
• In your EverQuest installation directory on you client PC, find: spells_en.txt and spells_us.txt. Copy them to your EQEmu server folder.
• This allows the server to read data from these files to ensure that the spells work as they should. You do not need to copy these files every time you update, but do make sure they're there before reporting any bugs about spells.

Create BAT Launcher file
• A .bat file makes launching the server much easier, and far less tedious. It also accomplishes launching the correct number of zone servers automatically. Make a .bat file to launch the server if you haven't already. Just make a new text file called startup.bat (you may need to change the extension from .txt to .bat). Then copy this text:
• @echo off
• start EQEmuLoginServer.exe
• start world
• echo waiting for the world to finish before starting zone...
• sleep 10
• start eqlaunch zone
• Now you can launch the startup.bat file and it should launch all of the server executables.

Remove Glooming Deep as the starting point
• Open up Navicat
• Open peq
• Open tables
• Open rule_values
• Find entry World:EnableTutorialButton (record 107-ish)
• Change to false

FILES
• MySQL 5.0.82
o (http://downloads.mysql.com/archives....sql-5.0&o=-win)
o (http://downloads.mysql.com/archives/...0.82-win32.zip)
• winrar
o (http://www.rarlab.com/rar/wrar393.exe)
• Navicat Lite
o (http://www.navicat.com/en/download/download.html)
o (http://download.cnet.com/Navicat-Lit...-10870715.html)
• Acrobat Reader
o (http://get.adobe.com/reader)
• TortoiseSVN
o (http://tortoisesvn.net/downloads)
o (http://downloads.sourceforge.net/tor...2.msi?download)
• ActivePerl 5.10.0.1007
o (http://www.activestate.com/activeperl/downloads)
o (http://downloads.activestate.com/Act...x86-291969.zip)
• Microsoft Visual C++ 2008 Express Edition
o (http://www.microsoft.com/express/Dow...008-Visual-CPP)
• Zlib
o (http://sourceforge.net/projects/libp...l.zip/download)
• EQEmuLoginServer.zip
o (http://code.google.com/p/projecteqemu/downloads/list)
SVN SOURCES
• EQEmu Source
o http://projecteqemu.googlecode.com/svn/
o http://code.google.com/p/projecteqemu/downloads/list
• EQEmu Database
o http://projecteqdb.googlecode.com/svn/trunk/
o http://code.google.com/p/projecteqdb/downloads/list
• EQEmu Quests
o http://projecteqquests.googlecode.com/svn/trunk/
o http://code.google.com/p/projecteqquests/downloads/list
• EQEmu Maps
o http://eqemumaps.googlecode.com/svn/trunk/Maps/
o http://code.google.com/p/eqemumaps/downloads/list
Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 09:03 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3