1. Устанавливаем все необходимые для работы сервера пакеты:
Код PHP:
1.1. Создадим пользователя trinity для удобства работы с сервером:
apt-get install build-essential autoconf libtool gcc g++ make cmake git-core apt-get install wget p7zip-full libncurses5-dev apt-get install libssl-dev mysql-server mysql-client libmysqlclient15-dev apt-get install libmysql++-dev libreadline6-dev zlib1g-dev libbz2-dev apt-get install libboost-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev apt-get install screen # Если вы устанавливаете версию 4.3.4 и выше, тогда необходимо установить следующий пакет sudo apt-get install libzmq-dev
Код PHP:
2. Для того что бы приступить к установке самого сервера WoW на базе TrinityCore, нам необходимо скачать его исходники. Исходники мы будем брать из GitHub. (В этой теме рассматривается установка сервера для версии 3.3.5, если устанавливаете другую версию измените значение -b 3.3.5 на необходимое в вашем случае):
adduser trinity # Устанавливаем пароль для нового пользователя, а также отвечаем на ряд поставленных вопросов при создании нового пользователя и заходим под этим пользователем su - trinity
Код PHP:
После выполнения выше приведённой команды начнётся скачивание выбранного нами релиза (бранча). По сути мы скачиваем на наш ПК исходники, которые расположены по ссылке.
git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git
3. Компиляция сервера. Компиляция будет выполнятся в папке build, для этого нам необходимо её создать и перейти в неё. Выполняем следующее:
Код PHP:
После того как мы перешли в созданную нами папку build, можем приступать к конфигурации исходников. Конфигурация может выполнятся с набором параметров:
cd TrinityCore mkdir build cd build
Код PHP:
Все из этих параметров указывать не обязательно, ниже приведён пример стандартной установки:
-DPREFIX Set - каталог установки скомпилированных файлов -DCONF_DIR Set - каталог установки конфигурационых файлов -DLIBSDIR Set - каталог библиотеки -DWITH_SQL - Скопирывать SQL-файлы в каталог с установленым сеовеолм Указываем путь до библиотеке ACE (libACE.so) - не используйте если ACE устоновлен глобально -DACE_LIBRARY=<путь к библиотеке ACE > Указываем путь до каталога ACE - не используйте если ACE устоновлен глобально -DACE_INCLUDE_DIR=<путь к каталогу ACE> Указываем прямой путь к OpenSSL - не используйте если у вас установлен OpenSSL в системе -DOPENSSL_LIBRARIES=<Путь до OpenSSL Библеотеки> Указываем путь до каталога к OpenSSL - не используйте если у вас установлен OpenSSL в системе -DOPENSSL_INCLUDE_DIR=<Путь до OpenSSL includes> -DSERVERS - сборка WorldServer и authserver -DSCRIPTS - Сборка сервера и скриптов. (Включен по умолчанию) -DTOOLS - Сборка Экстратора карт -DUSE_SFMT - Использовать SFMT как случайный генератор чисел. -DWITH_WARNINGS - Показать все предупреждения в процессе компиляции -DWITH_COREDEBUG - Включить дополнительный отладочнуй-код в ядре (DEBUG - режим) -DCMAKE_C_FLAGS Set C_FLAGS - компиляции только для опытных пользователей -DCMAKE_CXX_FLAGS Set CXX_FLAGS - компиляции только для опытных пользователей
Код PHP:
В выше указанном примере сборка сервера будет произведена в папку server, установка конфигурации сервера в папку server/etc, а установка библиотек в папку server/lib, также будет выведен полный лог ошибок во время компиляции сервера.
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server -DCONF_DIR=/home/wow/server/etc -DLIBSDIR=/home/wow/server/lib -DTOOLS=1 -DWITH_WARNINGS=1
4. Сборка ярда. Следующую команду make можно использовать с параметром -j x, где х количество ядер вашего процессора.
Код PHP:
После того как make завершит свою работу, выполняем:
make -j 4
Код PHP:
После выполнения make install наш сервер почти готов к работе, дальше необходимо настроить конфигурационные файлы сервера.
make install
5. Копируем файлы конфигурации сервера:
Код PHP:
Конфигурационные файлы скопированы, прежде чем перейти к их редактированию, нужно создать 2 директории:
cp /home/wow/server/etc/authserver.conf.dist /home/wow/server/etc/authserver.conf cp /home/wow/server/etc/worldserver.conf.dist /home/wow/server/etc/worldserver.conf
Теперь переходим к настройке файла authserver.conf
Код PHP:
И изменяем в нём несколько строк:
nano /home/trinity/wow/server/etc/authserver.conf
Код PHP:
Далее редактируем файл worldserver.conf:
Находим LogsDir = "" меняем на LogsDir = ""/home/trinity/wow/server/logs" Теперь наши логи будут сохранятся в нашу папку logs Находим LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth" и заполняем вашими данными (пользователя и пароль указывайте свои, не используйте пользователя root на публичных серверах) LoginDatabaseInfo = "127.0.0.1;3306;root;pass;auth"
Код PHP:
Изменяем в нём некоторые строки:
nano /home/trinity/wow/server/etc/worldserver.conf
Код PHP:
С файлами конфигурации закончили, теперь для работы сервера нам потребуются дополнительные файлы, такие как maps, dbc, vmap, mmap. Так как мы устанавливаем сервер WoW TrinityCore на Debian, соответственно самой игры на на сервере у нас нет, по этому их необходимо скачать из Интернета. Далее будем считать что файлы уже скачаны, и расположены в папках maps, dbc, vmap, mmap в директории /home/trinity/wow/server/data/.
Находим DataDir = "." и меняем на DataDir = ""/home/trinity/server/data" Находим LogsDir = "" и меняем на LogsDir = ""/home/trinity/server/logs" Находим LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth" WorldDatabaseInfo = "127.0.0.1;3306;trinity;trinity;world" CharacterDatabaseInfo = "127.0.0.1;3306;trinity;trinity;characters" и меняем так же как в authserver.conf
6. Заполнение данными MySQL базы данных. На этом этапе нам необходимо создать и наполнить информацией 3 базы: auth, world, characters. Создание и наполнение баз будем производить из консоли (в данном примере процесс создания и наполнения описан из под пользователя root, я же вам настоятельно рекомендую создать и использовать отдельного пользователя для работы с базой для сервера WoW TrinityCore).
Входим на наш MySQL сервер:
Код PHP:
Вводим пароль нашего пользователя, после этого приступаем к созданию баз:Код PHP:
Данные для баз auth и characters есть в скачанном репозитории. Заливаем эти данные:
CREATE DATABASE auth; CREATE DATABASE world; CREATE DATABASE characters;
Код PHP:
Скачать базу данные world мы можем по ссылке, необходимо выбрать базу для нашей версии сервера, скачать её и таким же образом залить в нашу базу MySQL сервера.После того как наши таблицы в базе наполнены содержимым, создаём файлы запуска сервера. Первым создаём файл для запуска сервера авторизации auth.sh:
Код PHP:
и наполняем его содержимым:
nano /home/trinity/wow/auth.sh
Код PHP:
Теперь создаём файл для запуска самого сервера игры world.sh:
#!/bin/bash while :; do /home/trinity/wow/server/bin/authserver -c /home/trinity/wow/server/etc/authserver.conf sleep 10 done
Код PHP:
Наполняем его данными:
nano /home/trinity/wow/world.sh
Код PHP:
Для автоматического перезапуска сервера нам необходимо выполнить две команды:
#!/bin/sh logfile='/home/trinity/wow/server/bin/logs/shserver.log' srvrun='/home/trinity/wow/server/bin/worldserver' srvname=worldserver outfile='/home/trinity/wow/server/bin/logs/crash.log' if [ `ps ax | grep "$srvrun" | grep -v "grep" | wc -l` = 0 ]; then kill `ps xu | grep "$srvname" | grep "$srvrun" | grep -v "grep" | awk '{print $2}'` echo "Server.log Log FILE Last 30 Lines:" >> $outfile cat $logfile | tail -n 30 >> $outfile echo "END bugtracker system." >> $outfile fi exit 0
Код PHP:
Наш сервер авторизации и сервер игры WoW TrinityCore успешно запущены. Запускайте свой клиент и наслаждайтесь игрой на собственном сервере WoW TrinityCore.
screen -AmdS auth /home/trinity/wow/auth.sh screen -AmdS world /home/trinity/wow/world.sh
Все свои вопросы и проблемы в установке сервера WoW TrinityCore пишите в ответах к данной теме, постараюсь помочь каждому