Создание сервера Perfect World на Debian и MySQL

Установка и настройка серверов для различных игр

Модератор: Dimanok

Создание сервера Perfect World на Debian и MySQL

Сообщение Arey » 17 ноя 2009, 15:52

Доброго времени суток господа!
Поставьте на закачку файлы вот от сюда, а мы пока чуть-чуть поговорим:)[/B]


http://files.mail.ru/2AOH0J это файлы, ссылка фулл онли


[Story...]
Впервые идея поднять свой собственный сервер ПВ появилась достаточно давно. Захотелось распробовать все вкусности этой игры и немножко побыть Богом Идеального Мира:) Однако тема отошла на второй план, т.к. лень и наличие рабочих фришек взяли вверх (пусть там и не получилось побыть богом)

Сначала был Х10к на pwgame.net... По началу даже нравилось, хотя возможность играть была только до 18:00 по МСК:( потом сервер подгружался и лагал так, как никто никогда не лагал:) Администрация правда в итоге на халяву поставила новый серв... Ставили дето неделю наверно... говорили что вайпа не будет, потом говорили что вероятность все же есть, потом запустили временный сервер где почти не давали голд, потом дали оч много голда, и потом сразу вайп:) зачем давали последний раз стоко голда, я так и не понял:) Корочь я забросил его к чертям...

И чудо проваденья завело меня на firefly. Чесно говоря, это самый лучший серв из всех где я был (спс Сантьяга, я тя тут видел;)) Со своими косяками конечн, но все же на нем было правдо интересно играть:)... В конце декабря случилось горе:( закрался фф... и до сих пор закрыт:( пришлось идти дальше...

Дальше на серверах не задерживался:\ Пангу - мало чем отличается от оффа, не катит:( СэмПВ - узкий канал, лаги:( БлекРоуз - лаги, жадный одмин (первый раз увидел чтоб ЧИ продавали за 40 рублей:) может там уже сейчас и мобов продают? заплатил чирик - на тебе Росянку:)) Ад сервер - нипомню почему не попробывал:) помню что собирался, но почемуто не стал. говорят норм серв...

Вобщем я бы так и прыгал, когда наконец не заметил, что все (!) пвп серваки лежат:( это было последней каплей. Я твердо решил, что поставлю свой сервер ПВ!:)


[Sources...]
Я просмотрел несколько форумов посвещеных поднятию и развитию серверов ПВ (Google.com рулит!:)) и остановился на двух наиболее перспективных (на мой взгляд) в плане идей. Это собсно русскоязычный ЭмуДев и забугорный мморпг-дев поэтому все что ниже изложено взято так или иначе с этих 2х источников (ссылки я буду приводить по ходу пьесы)

[Hard Working]
Сказано - сделано. С благочестивым рвение я начал пробовать свои силы в серверостроении. Скажу сразу, до этого никогда не поднимал сервера... Т.е. поднимал, но то были более обычные apache, proftpd, sshd, iced, qmail, smb и прочее, но вот конкретно игровых никогда:) Поэтому сначала я перечитал все что только смог найти на руском и на английском, была даже статья на немецком переведенная на руский (опять спс Google:))
Вооружившись кое-какими знаниями я пошел в бой. Решил для начала запустить на coLinuxе. Перебрал много, ниче не вышло:( Потом выкачал дистрибутив от TriRozhkи от сюда и чет меня прям осенило по поводу конфигов и "[A" и все пошло:)
Следующий шаг. IWeb. Нашел тут. Попарился с сертификатами в фаирфокс... заработало:) пофанился от души прочитав и приминив знания на практике
Далее. Перенос из coLinux на собсно сам Linux:). Взял Debian(любимый дистрибутив, всем советую) Взял статьи вот тут и тут и собсно все сделал, немного подковыряв authd.
Теперь последнее. Отказ от порочного MSSQL и переход на добродушный MySQL:) Оказалось что все намного проще чем я думал... Пищу для ума взял тут. И вот он нш результат:) Рабочий сервер под линуксом на MySQL...

[HowTo...]
Поехали по порядку...


[COLOR="Red"]1. Установка Debian.[/COLOR]
- При установке самое главное помнить, что полностью запушенный сервак кушает порядка 6 Гигов оперативкм... Поэтому если у нас нет 6 Гигов оперативки, делаем раздел подкачки (swap) на 6 Гигов:)
- Для экономии места на винте, можно установить лишь минимальную систему, все нужное мы поставим сами
- После запуска системы, заходим под пользователем root и устанавливаем нужные нам пакеты:


Код: Выделить всёРазвернуть
# apt-get install apache2
# apt-get install mysql-server
# apt-get install php5
# apt-get install php5-mysql
# apt-get install libapache2-mod-php5
# apt-get install phpmyadmin
# apt-get install unzip
# apt-get install mc


- Теперь установим пароль для пользователя root в MySQL:
Введем в консоли команду


Код: Выделить всёРазвернуть
# mysql


Теперь выполним 2 простых SQL запроса(не забудь ставить ; в конце):


Код: Выделить всёРазвернуть
>SET PASSWORD FOR 'root'@'localhost' = [COLOR="Red"]PASSWORD[/COLOR]('Новый_пароль');
>FLUSH PRIVILEGES;


Выйдем из программы командой /q

1.1 Востановление базы MySQL.
Этот шаг можно делать с машины под управлением Windows.
- Распакуем куда-нить себе на винт файлы из sql.rar
- В браузере откройте страничку [url]http://IP_вашего_сервера/phpmyadmin[/url] введите логин root и пароль, который мы установили шагом назад.
- В правом столбце выбираем Импорт и указываем путь к файлу PW_tabels.sql
- Потом выбираем базу pw и нажимаем кнопку SQL в верхнем ряду.
- Вставляем в поле запроса содержимое файла PW_procedures.sql, вместо ";" в поле Разделитель вставляем "$$" и нажимаем кнопку Пошел


[COLOR="Red"]2. Установка сервер. Настройка.[/COLOR]
- Распакуем содержимое сервера прямо в корень

Код: Выделить всёРазвернуть
# unzip PW1.3.6.zip


- Запустим MidnightCommander (команда mc) и найдем файл /home/glinkd/gamesys.conf Откроем его для редактирования (F4). В нем 4 раза встречается примерно следующий фрагмент

Код: Выделить всёРазвернуть
type = tcp
port = 29000
address = [COLOR="Red"]192.168.0.200[/COLOR]


и мы 4 раза, заменяем [COLOR="Red"]192.168.0.200 [/COLOR]на IP адрес нашего будущего сервера.
- Находим и открываем для редактирования (F4) файл /home/mauthd/build/conf/table.xml Находим в самом начале вот такой фрагмент


Код: Выделить всёРазвернуть
<driver name="com.mysql.jdbc.Driver" />
<connection name="auth0" poolsize="3"
url="jdbc:mysql://127.0.0.1:3306/pw?
useUnicode=true&characterEncoding=utf8" username="root"
password="[COLOR="Red"]1[/COLOR]"/>


Заменяем 1 на пароль пользователя root сервера баз данных MySQL. (тот, что мы установили в конце шага 1)
- Таким же образом редактируем файлы /var/www/register/config.php


Код: Выделить всёРазвернуть
<? //=====Script by trash=====// //=====For MySQL Datatbase=====//

$DBHost = "localhost"; // localhost or your IP
$DBUser = "root"; // Database user
$DBPassword = "[COLOR="Red"]1234[/COLOR]"; // Database password
$DBName = "pw"; // Database name?>


Вписываем пароль пользователя root сервера баз данных MySQL.
- Правим файл /var/www/register/status.php


Код: Выделить всёРазвернуть
/*-------Config------*/

$DBHost = "localhost"; // localhost or your IP
$DBUser = "root"; // Database user
$DBPassword = "[COLOR="Red"]1234[/COLOR]"; // Database password
$DBName = "dbo"; // Database name
$ServerIP = "[COLOR="Red"]192.168.1.2[/COLOR]"; // IP your PW Server
$ServerPort = "29000"; // Port your PW Server


Вписываем пароль пользователя root сервера баз данных MySQL. Указываем вместо dbo имя нашей базы (в моем случае pw) и заменяем IP адрес на свой.
- Откроем файл /etc/hosts и допишем ему в конец примерно следущие строчки


Код: Выделить всёРазвернуть
[COLOR="Red"]192.168.1.2 dbserver
192.168.1.2 database[/COLOR]
127.0.0.1 auth
127.0.0.1 aumanager
127.0.0.1 manager
127.0.0.1 link1
127.0.0.1 game1
127.0.0.1 game2
127.0.0.1 game3
127.0.0.1 delivery
127.0.0.1 backup
127.0.0.1 gmserver


Заменив IP адрес [COLOR="Red"]192.168.1.2[/COLOR] на наш


- Применяем права доступа:


Код: Выделить всёРазвернуть
# chmod 777 -R /home
# chmod 777 -R /etc/ssl
# chmod 777 /etc/gmopgen.xml
# chmod 777 /etc/GMserver.conf
# chmod 777 /etc/iweb.conf
# chmod 777 -R /usr/java
# chmod 777 -R /usr/lib
# chmod 777 -R /usr/local/jakarta-tomcat-5.5.9/bin/*.sh
# chmod 777 -R /lib
# chmod 777 /root/pwserver.sh


- Добавляем библиотеки

Код: Выделить всёРазвернуть
# ldconfig


- Рейты указываются в файле /home/gamed/ptemplate.conf в строчках


Код: Выделить всёРазвернуть
exp_bonus = [COLOR="Red"]100000[/COLOR]
MONEY_bonus = [COLOR="Red"]2000[/COLOR]
sp_bonus = [COLOR="Red"]2000[/COLOR]
DROP_bonus = [COLOR="Red"]2000[/COLOR]


- В скрипт регистрации я добавил автоначисление голда

Код: Выделить всёРазвернуть
$mysqlresult=MySQL_Query("select * from `users` WHERE `name`='$Login'");
$User_ID=MySQL_result($mysqlresult,0,'ID');
MySQL_Query("call usecash('$User_ID',1,0,1,0,[COLOR="Red"]500000[/COLOR],1,@error)") or die ("usecash failed!");


Укажите вместо [COLOR="Red"]500000[/COLOR] свое количество, или закоментируйте все это безобразие если оно вам не нужно:)
(Количество указывается в серебре. Т.е. 500000 - это 5000 золота и 00 серебра)
- IWeb. [ВНИМАНИЕ!] так уж получилось что эта версия iweb оч не дружит с apache в плане занимаемых портов:( выходов 4:
Перед запуском останавливать apache (# /etc/inid.d/apache2 stop)
Поменять настройки портов apache
Не запускать и даже не устанавливать apache2. Перенести скрипт регистрации на другой сервер.
Не пользоваться iweb

Закоментировать строки

Код: Выделить всёРазвернуть
echo "=== IWEB AND ROLE MANAGEMENT ==="
/usr/local/jakarta-tomcat-5.5.9/bin/startup.sh
sleep 5
echo "=== DONE! ==="
echo ""


в файлах

Код: Выделить всёРазвернуть
/home/startup.sh
/home/startup_min.sh
/home/startup_max.sh


[COLOR="Red"]3. Запуск сервера[/COLOR]
-В папке /root лежит мой самописный скриптик pwserver.sh для запуска сервера
Запусти его, выбери режим (1 - все данжи, 2 - только MainWorld, 3 - запуск /home/startup.sh)
1. Все данжи. Полный запуск сервера.
2. Только MainWorld. Удобно, когда надо быстро запустить только сервер.
3. Настроеный запуск из /home/startup.sh Например чтобы проверить какой-нить определенный данж

[Client side...]
Чтобы подключится к серверу надо в клиенте с рус офа произвести кое какие изменения:
- в файл element\userdata\server\serverlist.txt добавить/написать строчку вроде этой:


Код: Выделить всёРазвернуть
[COLOR="Red"]Elizabeth[/COLOR] 29000 [COLOR="Red"]192.168.1.2[/COLOR]


Где[COLOR="Red"] Elizabeth[/COLOR] - имя сервера, можно указать любое
29000 - порт сервера, его оставить таким же

[COLOR="Red"]192.168.1.2[/COLOR] - IP адрес сервера указать свой
- заменить файл шопа в element\data\gshop.data
он должен быть таким же как и тот, что на сервере (/home/gamed/config/gshop.data)
тот, что сейчас на сервере и выложен в ссылке наверху
- запустить сервер можно или через патчер или через bat файл следующего содержания:

Код: Выделить всёРазвернуть
cd element
start elementclient.exe game:cpw[IWeb...]


IWeb взял от сюда. Спс Refuge:) Собственно нам нужно только выполнить пункт 5 вот из этого поста.

Ну вот и все;)
Надеюсь кому то этот матерьял поможет, иначе зачем я его столько чепятал:\


(C) BlackPPoint(Emudev.ru)
Arey

 
Сообщения: 1
Зарегистрирован: 17 ноя 2009, 15:35

Re: Создание сервера Perfect World на Debian и MySQL

Сообщение _-AleX-_ » 06 дек 2010, 19:03

Здравствуйте, у меня вопрос есть по установке сервера: там написано установить Debian, где он находится или от куда скачать ?
_-AleX-_

 
Сообщения: 1
Зарегистрирован: 06 дек 2010, 18:57

Re: Создание сервера Perfect World на Debian и MySQL

Сообщение Dimanok » 06 дек 2010, 19:19

_-AleX-_ писал(а):Здравствуйте, у меня вопрос есть по установке сервера: там написано установить Debian, где он находится или от куда скачать ?

Debian это Linux система. http://debian.org/
www.strike64.ru - Крупнейшая конференция о играх корпорации Valve, Поволжья
Dimanok
Автор
 
Сообщения: 3505
Зарегистрирован: 05 июл 2008, 11:02
Откуда: Саратов
Домен: http://www.strike64.ru


Вернуться в Игровые серверы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron