UnixDoc.ru - Документация по UNIX и LINUX подобным ОС, OpenSource software. Установка, настройка, тюнинг, обеспечение безопасности. Статьи, форум, ссылки на достойные ресурсы, перевод man страниц и многое другое...  
ГЛАВНАЯ СТАТЬИ ФОРУМ WEBMASTER

Установка сервера PvPGN на NetBSD



В связи с появлением большого количества домовых сетей не связанных с Интернет или внешний трафик в которых обходится очень дорого особое значение приобретают локальные игровые серверы.

Данная статья имеет целью ознакомить читателя с методикой развертывания сервера PvPGN, обеспечивающего реализацию возможностей BattleNet. В качестве операционной системы используется NetBSD 2.0.2

Установка сервера Apache

В данной статье я не преследую цели выполнить оптимальную настройку Apache, MySQL или PHP, но устанавливать эти продукты из системы портов было бы слишком просто. Поэтому, все будем компилировать из исходных текстов.

Итак, первым у нас на очереди вэб-сервер Apache, который займется у нас отображением статистики игры. Текущей, на момент написания статьи, была версия 2.0.54:
    
    tar xvzf httpd-2.0.54.tar.gz
    cd httpd-2.0.54
    ./configure  --prefix=/opt2/apache2  --enable-so --enable-ssl --enable-cgi
    make
    make install
    
    

Установка сервера MySQL

Тут нам будет немного труднее. Необходимо создать группу и пользователся, с правами которого будет выполняться сервер.
    
    groupadd mysql
    useradd -g mysql mysql
    
Распаковываем архив, компилируем и устанавливаем сервер:
    
    tar xvzf mysql-4.1.14.tar.gz
    cd mysql-4.1.14
    ./configure --prefix=/opt2/mysql
    make 
    make install
    cp support-files/my-medium.cnf /etc/my.cnf
    
Первый запуск:
    
    /opt2/mysql/bin/mysql_install_db --user=mysql
    chown -R root  .
    chown -R mysql var
    chgrp -R mysql .
    bin/mysqld_safe --user=mysql &
    /opt2/mysql/bin/mysqladmin -u root password new-password
    
Необходимо убедиться в том, что сервер баз данных запустился и готов принимать запросы:
    
    root@netbsd:netstat -an
    Active Internet connections (including servers)
    Proto Recv-Q Send-Q  Local Address          Foreign Address        State
    ...
    tcp        0      0  *.3306                 *.*                    LISTEN
    ...
    
или
    
    root@netbsd:ps -aux | grep mysql
    root   20364  0.0  0.0   152     4 p0- IW    1:25PM 0:00.03 /bin/sh /opt2/mysql/bin/mysqld_safe --user=mysql
    mysql  25919  0.0  0.0 42136  4028 p0- IWa   1:25PM 5:44.66 /opt2/mysql/libexec/mysqld --basedir=/opt2/mysql 
    
Теперь необходимо создать базу данных для нашего игрового сервера:
    
    mysql -u root -p
    mysql> create database pvpgn;
    mysql> grant all on pvpgn.* to pvpgn@'localhost' identified by "password";
    

Установка PHP

Здесь все просто:
    
    tar xvzf php-5.0.4.tar.gz
    cd php-5.0.4
    ./configure --with-apxs2=/opt2/apache2/bin/apxs --with-mysql=/opt2/mysql/ --prefix=/opt2/php --disable-libxml
    make 
    make install
    

Установка сервера PvPGN

Вот мы и подошли к самому захватывающему.
    
    tar xvzf pvpgn-1.7.8.tar.gz
    cd pvpgn-1.7.8/src
    
Местоположение хедеров и библиотек MySQL можно указать через аргументы LDFLAGS и CPPFLAGS, я предпочел внести изменеия непосредственно в файл configure, где добавил соответствующие пути к переменным mysql_try_libs и mysql_try_includes. Далее нам необходимо сделать ход конем:
    
    cp /usr/pkg/lib/mysql/libmysqlclient.so.14 /usr/lib/
    
иначе, мы получим ошибку при выполнении ./configure. Далее, нам понадобится GNU версия утилиты make, которую я поставил из прекомпилированных пакетов:
    
    pkg_add gmake-3.80nb4.tgz
    
Заключительный этап установки:
    
    ./configure --prefix="/opt2/bnetd" --disable-d2cs --disable-d2dbs --with-mysql
    gmake
    gmake install
    

Настройка сервера PvPGN и отображение статистики игр

Для обеспечения работоспособности сервера необходим пакет pvpgn-support-1.0. Здесь все предельно ясно:
    
    tar xvzf pvpgn-support-1.0.tar.gz
    cp -r pvpgn-support-1.0/* /opt2/bnetd/var/files/
    
В файле конфигурации /opt2/bnetd/etc/bnetd.conf необходимо раскомментировать и исправить следующую строку:
    
    storage_path = sql:mode=mysql;host=localhost;name=pvpgn;user=pvpgn;pass=password;default=0
    
Запускаем сервер:
    
    
    /opt2/bnetd/sbin/bnetd
    
Проверяем правильность работы:
    
    root@netbsd:netstat -an
    Active Internet connections (including servers)
    Proto Recv-Q Send-Q  Local Address          Foreign Address        State
    tcp        0      0  *.6200                 *.*                    LISTEN
    tcp        0      0  *.6112                 *.*                    LISTEN
    tcp        0      0  *.3306                 *.*                    LISTEN
    udp        0      0  *.6112                 *.*
    
Исследуем журнальный файл:
    
    Sep 12 17:08:17 [info ] eventlog_startup: logging event levels: fatal,error,warn,info,debug,trace
    Sep 12 17:08:17 [debug] give_up_root_privileges: about to give up root privileges
    Sep 12 17:08:17 [info ] pvpgn_greeting: PvPGN BnetD Mod version 1.7.8 process 29451
    Sep 12 17:08:17 [info ] storage_init: initializing storage layer (available drivers: file, sql)
    Sep 12 17:08:17 [info ] sql_dbcreator: Creating missing tables and columns (if any)
    Sep 12 17:08:18 [info ] sql_dbcreator: added missing table BNET to DB
    Sep 12 17:08:18 [info ] sql_dbcreator: added missing column uid int NOT NULL PRIMARY KEY to table BNET
    Sep 12 17:08:18 [info ] sql_dbcreator: added missing column acct_username varchar(32) to table BNET
    Sep 12 17:08:18 [info ] sql_dbcreator: added missing column username varchar(32) to table BNET
    Sep 12 17:08:18 [info ] sql_dbcreator: sucessfully issued: && UPDATE BNET SET username = lower(acct_username)
    ...
    Sep 12 17:09:13 [info ] sql_dbcreator: added missing default account to table arrangedteam
    Sep 12 17:09:13 [info ] sql_dbcreator: finished adding missing tables and columns
    Sep 12 17:09:13 [info ] storage_init: using sql storage driver
    Sep 12 17:09:13 [info ] fdw_kqueue_init: fdwatch kqueue() based layer initialized (max 1000 sockets)
    
Это указывает нам на то, что база данных игры была нормально создана и сервер запущен и выполняется.

В качестве финального аккорда настроим отображение статистики:
    
    tar xvzf pvpgn-stats-2.3.20.tar.gz
    mkdir /opt2/apache2/htdocs/stat
    cp -r pvpgn-stats-2.3.20/* /opt2/apache2/htdocs/stat
    
Отредактируйте файл /opt2/apache2/htdocs/stat/config.inc.php и все, дело сделано :-) Наиболее полно все вопросы функционирования и настройки сервера PvPGN рассмотрены на сайте http://pvpgn.berlios.de/.



Автор|Источник|Перевод: Сгибнев Михаил, http://dreamcatcher.ru

Найти похожие документы: PvPGN NetBSD

Обсудить эту статью и задать вопросы Вы можете в нашем форуме.
 
ГЛАВНАЯ СТАТЬИ ФОРУМ WEBMASTER
Рейтинг@Mail.ru © MiF 2003-2005