Показать сообщение отдельно
Старый 07.03.2010, 02:10   #1
metacreo
Новичок
 
Регистрация: 31.03.2010
Сообщений: 17
Сказал(а) спасибо: 4
Поблагодарили 8 раз(а) в 4 сообщениях
metacreo На верном пути
По умолчанию

В принципе можно было бы перенести вики полностью сюда. Но в основном там описания баз, да и проекты братские, так имеет ли смысл?

Заходите на http://wiki.ytdb.ru/ - там есть вся нужная информация. Если нету - значит надо добавить.

Инсталляция mangos под FreeBSD 8.0.

Все пути относительно корня файловой системы / и домашнего каталога ~/
В системе создан пользователь: wow Домашний каталог: /usr/home/wow
С ним и будем работать после установки портов.

Итак. Для установки, запуска и настройки нам понадобятся следующие программы:
git, subversion, mysql51-server, cmake, screen, p7zip
Всё прекрасно ставиться из портов, без каких либо патчей и извращений
Порты ставим от root или от уполномоченного пользователя.
Код:
# whereis git subversion mysql51-server cmake screen p7zip
git:  /usr/ports/devel/git
subversion: /usr/ports/devel/subversion
mysql51-server: /usr/ports/databases/mysql51-server
cmake:  /usr/ports/devel/cmake
screen:  /usr/ports/sysutils/screen
p7zip:  /usr/ports/archivers/p7zip
#
Заходим везде и устанавливаем:
Код:
# make install clean
О настройке и установке MySQL можно почитать здесь:
http://daemony.org/freebsd/mysql51-s...ent-setup.html

Переключаемся на пользователя от которого будем работать:
Код:
# su wow
% cd (переходим в домашний каталог)
Получаем исходники mangos из github:
Код:
% git clone git://github.com/mangos/mangos.git
Получаем исходники ScriptDev2 из github:
Код:
% git clone git://github.com/scriptdev2/scriptdev2.git ~/mangos/src/bindings/ScriptDev2
Переходим в директорию с исходниками:
Код:
% cd mangos
Применяем патч ScriptDev2:
Код:
% git apply < src/bindings/ScriptDev2/patches/MaNGOS-11167-ScriptDev2.patch
Создаём директорию для сборки сервера:
Код:
% mkdir build
В принципе всё можно собрать и инсталлировать.

Переходим в каталог для сборки сервера:
Код:
% cd build
Подготавливаем сборку, указав пути для сервера:
Код:
% cmake -DPREFIX=/home/wow/server ..
Собираем и устанавливаем:
Код:
% make
% make install
Настраиваем конфигурационные файлы:
Код:
% cd ~/server/etc
% cp scriptdev2.conf.dist  scriptdev2.conf
% cp realmd.conf.dist  realmd.conf
% cp mangosd.conf.dist mangosd.conf
% ee scriptdev2.conf
Для unix сокета меняем запись по умолчанию на:
Код:
ScriptDev2DatabaseInfo     = ".;/tmp/mysql.sock;mangos;mangos;scriptdev2"
“сокет_mysql_сервера ; имя_пользователя_базы ; пароль ; имя_базы ”

Код:
% ee realmd.conf
Настраиваем mysql-сокет и логи:
Код:
LoginDatabaseInfo = ".;/tmp/mysql.sock;mangos;mangos;realmd"
LogsDir = "/home/wow/logs/"  
MaxPingTime = 30
RealmServerPort = 3724
BindIP = "0.0.0.0"
Код:
% ee mangos.conf
Настраиваем директорию с мапами, логи, mysql-сокет и мир по желанию :
Код:
RealmID = 1
DataDir = "/home/wow/server/data"
LogsDir = "/home/wow/logs"
LoginDatabaseInfo     = ".;/tmp/mysql.sock;mangos; mangos;realmd"
WorldDatabaseInfo     = ".;/tmp/mysql.sock;mangos; mangos;mangos"
CharacterDatabaseInfo = ".;/tmp/mysql.sock;mangos; mangos;characters"
LoginDatabaseConnections = 1
WorldDatabaseConnections = 1
CharacterDatabaseConnections = 1
MaxPingTime = 30
WorldServerPort = 8085
BindIP = "0.0.0.0"
Создаём директории для логов и мапов:
Код:
% mkdir ~/logs
% mkdir ~/server/data
Работа с базой.
Скачиваем заселённую базу мира YTDB и распаковываем:
(Рекомендую использовать именно YTDB так как она шагает в ногу со временем а также достаточно русифицирована)
Код:
% svn co http://svn2.assembla.com/svn/ytdbase ~/YTDB
% 7z e ~/YTDB/R59/YTDB_0.14.2_R590_MaNGOS_R11278_SD2_R2003_ACID_R308_RuDB_R38.8.7z
Заливаем базы в базы . Обратите внимание, операции связанные с созданием баз выполняются от root.
Код:
% mysql -u root -p < ~/mangos/sql/create_mysql.sql 
% mysql -u mangos -p realmd < ~/mangos/sql/realmd.sql
% mysql -u mangos -p characters < ~/mangos/sql/characters.sql
% mysql -u mangos -p mangos < ~/mangos/sql/mangos.sql
% mysql -u mangos -p mangos < ~/mangos/sql/mangos_spell_check.sql
Заливаем базу мира YTDB и обновления:
Код:
% mysql -u mangos -p mangos < ~/YTDB/R59/YTDB_0.14.2_R590_MaNGOS_R11278_SD2_R2003_ACID_R308_RuDB_R38.8.sql
% mysql -u mangos -p mangos < ~/YTDB/R59/Updates/591_corepatch_mangos_11278_to_11299.sql
% mysql -u mangos -p mangos < ~/YTDB/R59/Updates/591_mangos_FIX_\(11299\).sql
В такой последовательности применяем все последующие обновления, если таковы существуют.
Далее заливаем в базу ScriptDev2:
Код:
% mysql -u root -p < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_create_database.sql
% mysql -u mangos –p scriptdev2 < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_create_structure_mysql.sql
% mysql -u mangos –p scriptdev2 < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_script_full.sql
% mysql -u mangos -p mangos < ~/mangos/src/bindings/ScriptDev2/sql/mangos_scriptname_full.sql
Добавляем свой реалмлист и аккаунт ГМ (admin) через mysql:
Код:
% mysql -u mangos -p realmd
mysql> UPDATE realmlist SET name='my super server', address='192.168.0.10' WHERE id='1';
mysql> DELETE FROM account;
mysql> INSERT INTO account (username,sha_pass_hash,gmlevel)  VALUES ('admin',SHA1(CONCAT(UPPER('admin'),':',UPPER('password'))),'3');
192.168.0.10 - ip интерфейса, который смотрит в сеть, admin и password - логин и пароль ГМа.

Выдираем карты из клиента и копируем в директорию для мапов:
~/mangos/contrib/extractor/ad.exe и ~/mangos/contrib/vmap_extract_assembler_bin всё из папки копируем в корневую папку клиента wow,
на машину под управлением Windows. Запускаем ad.exe, ждём завершения, запускаем makevmaps_SIMPLE и тоже ждём.
Заливаем папки vmaps, maps и dbc на FreeBSD в директорию которую создали ранее ~/mangos/data
Должно получиться так: ~/server/data/vmaps ~/server/data/maps ~/server/data/dbc

Редактируем скрипт запуска:
Код:
% ee /usr/home/wow/server/bin/run-mangosd
Код:
#!/bin/sh
while true ; do
servlog='/home/wow/logs/Server.log';
outpatch='/home/wow/logs/crash/';
date=`date "+%Y-%m-%d_%H:%M:%S"`;
echo "Server CRASHED !!! Start Bugreport System." >> $outpatch$date.txt;
echo "Server.log Log FILE Last 30 Lines:" >> $outpatch$date.txt;
cat $servlog | tail -n 30 >> $outpatch$date.txt;
echo "" >> $outpatch$date.txt;
echo "END bugtracker system." >> $outpatch$date.txt;
nice -n -20 /home/wow/server/bin/mangosd
done
Делаем скрипт запуска исполняемым:
Код:
% chmod +x /usr/home/wow/server/bin/run-mangosd
Запускаем:
Код:
% screen -AmdS realm /home/wow/server/bin/realmd
% screen -AmdS world /home/wow/server/bin/run-mangosd
чтобы посмотреть, что происходит с сервером, вводим команды:
для реалма
% screen -r realm
для мира
% screen -r world
когда насмотрелись, жмём Ctrl+A,D чтобы отключиться от screen.
Ctrl+C остановит сервер

Первый запуск mangosd рекомендуется произвести без screen.
Код:
% screen -AmdS realm /home/wow/server/bin/realmd
% cd /home/wow/server/bin/
%  ./mangosd
Вот и всё. Ничего особенного.
Удачи всем.

Последний раз редактировалось metacreo; 17.08.2012 в 20:08. Причина: fix ACE freebsd compatabl.
metacreo вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Konctantin (04.04.2011)