Руководство по поднятию сервера AiON на Linux платформе
Хочу предложить Вам гайд по поднятию, настройке и дальнейшем обновлении сервера AiON на Linux платформе.
Если четко придерживаться руководства, по окончанию его выполнения получите рабочий сервер команды Aion X Emu Примечание: 1. Все действия буду описывать основываясь на собственном опыте на Mandriva Linux, в связи с этим некоторые команды могут отличаться от других Linux дистрибутивов. 2. В руководстве указываю создание отдельного раздела для сервера AiON (при установке Linux), но это не означает что вы не можете использовать это руководство не переустанавливая свою систему. Достаточно будет создать директорию для сервера ипропустить совет относящийся к созданию раздела. 1. Начнем. Как и сказанно выше, Вам необходимо создать отдельный раздел для Вашего будущего сервера. У меня этот раздел имеет 9Гб пространства и нехватки свободного места я не ощущаю (храня на этом разделе и искодники и сами сервера) что вообщем-то и не мудренно. В дальнейшем описании я буду считать точкой монтирования /aion. -- Файловую систему для этого раздела советую выбрать ReiserFS т.к. она позволяет обеспечить высокую производительность при работе с мелкими файлами. Прочитать о данной файловой системе можете к примеру на wikipedia Из опыта: сравнивал видимую скорость работы на Ext4 и ReiserFS, последняя ощущается процентов на 40 быстрее. 2. Установка пакетов нужных для дальнейшей работы -- для начала, по классике всех прочитаных мной руководств, обновим ситему если она того желает: Примечание: выполните в терминале команду "su -" и введите пароль пользователя root или добавляйте перед следующими командами sudo Код:
yum update Код:
urpmi subversion ant unzip mysql openJDK 3. Создадим отдельного пользователя Linux Делают это что бы обезопасится от взлома рута и получения полного контроля над Linux Код:
adduser aion Войдите этим пользователем в систему -- если вы находитесь в системе от имени root при помощи "su -", то сначала выйдите рутом(exit) и потом войдите пользователем aion login aion 4. Приступаем к скачиванию исходников Перейдем в наш раздел для сервера Код:
cd /aion Код:
sudo svn co https://subversion.assembla.com/svn/AIONXEMU/ Код:
ls Код:
[root@mandriva aion]# ls Код:
/aion/AIONXEMU/trunk/Commons(ChatServer | LoginServer | GameServer) Код:
mv AIONXEMU/trunk aionxemu Код:
/aion/aionxemu/Commons(ChatServer | LoginServer | GameServer) 5. Компилирование серверов Переходим в папку Commons и компилируем ее первой, т.к. разработчики советуют это делать Код:
cd /aion/aionxemu/Commons Код:
cd ../LoginServer Код:
cd ../GameServer Код:
cd ../ChatServer Для начала нам необходимо создать директорию где будут лежать наши сервера Код:
mkdir /aion/server Код:
unzip /aion/aionxemu/LoginServer/build/ax_login.zip -d /aion/server Вариант 1. PhpMyAdmin Для простоты работы с БД предлагаю установить PhpMyAdmin, требуется наличие установленных иксов Код:
urpmi phpmyadmin создадим пользователя БД aion и настроим ему права доступа к нашим базам. Вариант 2. Вручную через терминал. Создание БД и пользователя вручную Войти в MySQL пользователем root Код:
mysql -u root -p Код:
MySQL> CREATE DATABASE ac_server_ls; Код:
mysql> USE mysql входим нашим пользователем Код:
mysql -u aion -p Импортировать базы вручную LoginServer БД Код:
cd /aion/server/loginserver/sql Код:
cd /aion/server/gameserver/sql Код:
cd /aion/server/gameserver/sql/drops Теперь вы должны отредактировать конфиги ваших серверов Конфиг loginserver Код:
cd /aion/server/loginserver/config/network Код:
# This is database url Код:
cd /aion/server/gameserver/config/ default.config: Код:
# =================================== Код:
<ipconfig default="YOUR_EXTERNAL_IP_THERE"> Если вы хотите изменить имя GameServer, установите другой идентификатор (не вы не можете использовать пользовательское имя сервера, вы должны выбрать одно из предоставленых имен) Теперь вы должны добавить идентификатор GameServer и пароль в БД LoginServer, измените 127.0.0.1 на ваш реальный IP или используйте * для разрешения соединения с любого IP: Код:
mysql -u server -p 9. Запуск Login и Game серверов + использование screen Вариант1. стандартный метод запуска Login и Game сервера Запуск LoginServer сделать скрипты исполняемыми Код:
cd /aion/server/loginserver/ Код:
./StartLS_loop.sh сделать скрипты исполняемыми Код:
cd /aion/server/gameserver/ Код:
./StartGS_loop.sh Запуск серверов с использованием screen Войдите в консоли от имени пользователя root и установите пакет screen Код:
urpmi screen Первый скрипт для loginserver: Код:
cd /aion/server/loginserver/ Код:
java -Xms8m -Xmx32m -ea -Xbootclasspath/p:./libs/jsr166.jar -cp ./libs/*:ax-login-1.0.1.jar loginserver.LoginServer Код:
nano startLogin Код:
screen -A -m -d -S aion_loginserver_ID1 ./login.sh Код:
chmod +x login.sh Код:
cd /aion/server/gameserver/ Код:
java -server -Xms128m -Xmx1536m -ea -Xbootclasspath/p:./libs/jsr166.jar -cp ./libs/*:ax-game-1.0.1.jar gameserver.GameServer Код:
nano startGame Код:
screen -A -m -d -S aion_gameserver_ID1 ./game.sh Код:
chmod +x game.sh Создадим два скрипта - скрипт автозапуска серверов и скрипт автообновления, который будет сразу много всего (остановка_работающих_серверов(демон) + обновление_исходников + компилирование_серверов + сохранение_конфигов_"живых"_серверов + установка_обновленых_серверов + конфигурирование_новых_серверов + запуск_серверов(демон)) Скрипт1, автозапуск серверов(автозагрузка): Создадим файл aion в папке /etc/init.d Код:
nano /etc/init.d/aion Код:
#!/bin/sh Код:
chmod +x /etc/init.d/aion Код:
nano /aion/aion-update Код:
#!/bin/sh Код:
chmod +x /aion/aion-update Код:
crontab -u root -e Код:
* 5 * * * /aion/aion-update Для верности всех наших махинаций перезагрузим машину. Код:
reboot если зашли root'ом Код:
screen -r Код:
sudo screen -r Код:
12111.aion.login................ На этой ноте соизволю откланяться. Если будут замечания/пожелания (желательна конкретика), буду рад принять к сведению, проверить и если это действенно добавить в это руководство. За основу руководства взяты статьи: Описание по поднятию быстрого сервера Aion на linux платформе How To Install Aion X Emu on Linux При копировании на другие ресурсы просьба указывать авторство и "статьи вдохновители" |
Re: Руководство по поднятию сервера AiON на Linux платформе
Молодец! Пожалуй закреплю.
|
Re: Руководство по поднятию сервера AiON на Linux платформе
Есть только тонкость - не указано как разрешить MySQL слушать обращение из вне.
И так вот дополнение: Открытие доступа к серверу MySQL удалённым клиентам Обычно MySQL сервер не прослушивает TCP порт 3306. Для допуска (сторонних) TCP подключений, закомментируйте следующую строчку в файле /etc/mysql/my.cnf: Цитата:
Цитата:
|
Re: Руководство по поднятию сервера AiON на Linux платформе
Не работает автозапуск.
Интересует участок кода: RUNPATH="/aion/server" GAMEEXEC="java -server -Xms128m -Xmx1536m -ea -Xbootclasspath/p:./libs/jsr166.jar -cp ./libs/*:ax-game-1.0.1.jar gameserver.GameServer" LOGINEXEC="java -Xms8m -Xmx32m -ea -Xbootclasspath/p:./libs/jsr166.jar -cp ./libs/*:ax-login-1.0.1.jar loginserver.LoginServer" GAME_PID=$(ps ux | awk '/ae_gameserver/ && !/awk/ {print $2}') LOGIN_PID=$(ps ux | awk '/ae_login/ && !/awk/ {print $2}') Файлы у меня на логин серваке: ls ax-login-1.0.1.jar libs login.sh startLogin.bat config log sql startLogin.sh data login_loop.sh startLogin Как править код если у меня вот такие вот файлики? Не догоняю помогите.... |
Re: Руководство по поднятию сервера AiON на Linux платформе
тут не к файлам привязка
берешь *_loop.sh из него код вставляешь в соответственные значения (код "java .....") в PIDах вместо ае_тра-та-та пишем имена jarов которые имеем (ax-login, ax-gameserver если не ошибаюсь, щаз сверять харит) без расширений и усе собсна |
Re: Руководство по поднятию сервера AiON на Linux платформе
GAMEEXEC= вставил из game_loop.sh
LOGINEXEC=вставил из login_loop.sh а пиды: GAME_PID=$(ps ux | awk '/ax-gameserver/ && !/awk/ {print $2}') LOGIN_PID=$(ps ux | awk '/ax-login/ && !/awk/ {print $2}') стали вместо ae и как бы нема - автозагрузки нет... смотрю по screen -r |
Re: Руководство по поднятию сервера AiON на Linux платформе
а в автозагрузку ты этот файл ставил-то? ))
|
Re: Руководство по поднятию сервера AiON на Linux платформе
да ставил - в инит д
cd /etc/rc6.d/ ls README S20sendsigs S31umountnfs.sh S40umountfs S90reboot S15wpa-ifupdown S30urandom S35networking S60umountroot S99aion мож логи какие есть? по этому делу? |
Re: Руководство по поднятию сервера AiON на Linux платформе
ну во-первых:
Код:
ln -s /etc/init.d/aion /etc/rc6.d/S99aion Цитата:
|
Re: Руководство по поднятию сервера AiON на Linux платформе
Запустилось после:
1. Поменял название скрипта с aion на aion.sh 2. sudo update-rc.d aion.sh defaults 95 -------- Теперь другая проблема (мож скрипт не для убунты) делаю ./aion.sh stop пишет Stoping Aion Services...OK смотрю screen -r 761.aion.game (24.02.2011 21:08:48) (Detached) 759.aion.login (24.02.2011 21:08:48) (Detached) То есть реально не стопит (в клиенте никаких мессаг) делаю ./aion.sh start смотрю There are several suitable screens on: 1289.aion.game (24.02.2011 21:56:16) (Detached) 1287.aion.login (24.02.2011 21:56:16) (Detached) 761.aion.game (24.02.2011 21:08:48) (Detached) 759.aion.login (24.02.2011 21:08:48) (Detached) Type "screen [-d] -r [pid.]tty.host" to resume one of them То есть проверки на "активность серваков" нет PS: Просто команда aion stop, как описано в скрипте aion-update выдает No command 'aion' found, did you mean: Command 'ion' from package 'ion3' (multiverse) aion: command not found |
Текущее время: 10:39. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot