Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Документация/[os]Установка Линукс И Запуск Сервера На Нем
Search

[os]Установка Линукс И Запуск Сервера На Нем

4 replies2,974 viewsCurrently viewing: 1
петр
петр

User

Бывалый

Posts: 248

На форуме с: 11/08/2007

Репутация: +70

Рейтинг: 0

· 02/18/2008, 09:13 PM

Установка линукс (Ubuntu server 7.10 i386) и запуск сервера L2Emu IL на нем…
Описываю как что делал для себя...


Технические условия...

Комп:

Цитата
Celeron 1200МГц, 512Мб оперативы, хард - 20Гб

Сеть:
Цитата
роутер D-link Dl-824vup+ с IP 192.168.0.1
внутренняя сеть - 192.168.0.0/255.255.255.0…
локалка – 10.211.22.200, 10.0.0.0/255.255.248.0
интернет - 78.107.239.220, 0.0.0.0/255.255.255.255
IP сервера - 192.168.0.5
На роутере добавлены Виртуальные серверы с IP 192.168.0.5 и TCP портами 7777, 2106, 80


Установка Ubuntu server 7.10… берем здесь http://mirror.yandex.ru/ubuntu-releases/gutsy/

1. Загружаемся с диска и жмем "Install to the Hard Drive"…
2. Затем идут региональные настройки, я везде выбрал "русский", "Россия" и т.п. От автоопределения клавы отказываемся… тип и раскладку клавиатуры я поставил "Русский"… переключение раскладок - Ctrl+Shift…
3. Во время настройки сети давим "Отмена" и выбираем "Настроить сеть вручную", IP – 192.168.0.5, Маска – 255.255.255.0, Шлюз – 192.168.0.1, DNS – 192.168.0.1…
4. Вводим имя компа – "server"…
5. Разметка диска… выбираем "Вручную"… и создаем 2 раздела: Swap и Файловую систему… Swap – 2Гб, первичный, начало диска, использовать как "Раздел подкачки"… Файловая система – все что осталось, первичный, Использовать как "Ext3", точка монтирования – "/", Метка ‘загрузочный’ – "вкл"…
6. Часовой пояс – "Москва", Системные часы показывают UTC? – "Да"…
7. Имя пользователя, учетная запись, 2 раза пароль…
8. При выборе сервера жмем "Tab"...

Ждем пока установится и перезагружаемся… Заходим в систему…

Теперь немого настроим систему…

1. Сначала поменяем пароль пользователя root… выполняем:
Код
sudo passwd root

вводим пароль текущего пользователя, а затем 2 раза новый пароль для root… выполняем:
Код
logout

и заходим под рутом

2. Отредактируем файл с репозиториями…
Код
nano /etc/apt/sources.list

надо закомментировать все строки deb-src и deb cdrom, для того чтобы система не качала исходники и не требовала диск с дистрибутивом… Жмем Ctrl+X выхода... сохраняемся...

3. Обновляем систему… выполняем:
Код
aptitude update && aptitude dist-upgrade && aptitude upgrade

затем перезагружаемся:
Код
shutdown –r now

После перезагрезки снова заходим под рутом

Теперь приступим к установке программ…

1. Midnight Commander, двухоконный файловый менеджер, типа досовского Norton Commander или виндового FAR Manager…
Код
apt-get install mc

2. Поддержка ZIP-архивов…
Код
aptitude install unzip
aptitude install zip

3. Браузер Elinks…
Код
apt-get install elinks

4. Java Development Kit 6…
Код
aptitude install sun-java6-jdk

Соглашаемся с лицензионным соглашением...
после окончания выполняем:

Код
nano /etc/jvm

На 1е место вписываем /usr/lib/jvm/java-6-sun...

5. MySQL… выполняем:
Код
apt-get install mysql-server

указываем пароль на базу…

6. Веб-сервер Apache 2…
Код
apt-get install apache2

7. PHP 5…
Код
apt-get install php5 libapache2-mod-php5

8. ANT, программа для компилляции…
Код
aptitude install ant

9. Subversion, программа, для получения исходников с SVN…
Код
aptitude install subversion

10. Maven, программа для компилляции сервера…
запускаем браузер
Код
elinks

и вводим URL
Код
http://www.sai.msu.su/apache/maven/binaries/apache-maven-2.0.8-bin.tar.gz

сохраняем файл на диск /… выходим из браузера… Esc – File – Exit… Запускаем MC:
Код
mc
… идем куда сохранили архив и распаковываем его в /mvn… (с архивами работаем как с обычными папками… Для копирования жмем F5 и указываем путь /mvn)…

11. PhpMyAdmin, управление базами данных…
Сворачиваем MC комбинацией "Ctrl+O" и выполняем
Код
apt-get install phpmyadmin

после установки запускаем браузер и вводим URL
Код
http://switch.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.4-all-languages.zip

сохраняем файл (/) и выходим из браузера… Возвращаемся в MC ("Ctrl+O")Распаковываем полученный архив в папку /var/www/… и переименовываем полученную папку в phpmyadmin… потом нодо записать в эту папку файлы из аттача...

12. SSH, Удаленный доступ к файлам... сворачиваем MC и выполняем...
Код
apt-get install ssh-server


Теперь надо получить исходники и собрать из них сервер…

1.Качаем исходники… Переходим в корень диска, жмем F7 и создаем папку /l2emu… Сворачиваем MC… Переходим в созданную папку
Код
cd /l2emu/

затем качаем GameServer, LoginServer и DataPack
Код
svn co http://tools.assembla.com/svn/L2Emuproject/archives/

DiskW
Код
svn co http://tools.assembla.com/svn/L2Emuproject/trunk/L2Emu_DiskW/

Внимательнее с регистром букв, линукс придирчив к этому… Для ускорения процесса можно запускать скачки в разных сеансах… переключение сеансов осуществляется комбинациями Alt+{F1..F6}… Ждем пока все скачается… Разворачиваем MC и распаковываем архивы L2Emu_GameServer_IL.zip, L2Emu_LoginServer_IL.zip, L2Emu_DataPack_IL.zip из папки /l2emu/archives/ в папку /l2emu, в итоге в папке /l2emu должны появиться папки L2Emu_GameServer_IL, L2Emu_LoginServer_IL, L2Emu_DataPack_IL… Распаковка займет прилично времени… Потом надо скопировть папку .svn из /l2emu/archives/ в получившиеся папки…

2. Перед сборкой желательно немного заглянуть в исходники (для редактирования выбираем файл и жмем "F4"), а именно…
/l2emu/L2Emu_GameServer_IL/src/main/java/net/sf/l2j/gameserver/serverpackets/... здесь редактируем файлик NpcHtmlMessage.java… на 165 строке, надо заменить 8192 на 5120… это нужно для предотвращения падения клиента, от html’ок размером более 5кб (в винде можно 8кб, а в линуксе только 5кб…)… после изменений не будут работать некоторые окна админки… до изменений, клиент падал бы с критом…
/l2emu/L2Emu_GameServer_IL/src/main/java/net/sf/l2j/gameserver/handler/admincommandhandlers/… нам нужен файл AdminCTFEngine.java, здесь в блоке, начинающемся на 38 строке, 2 раза повторяются комманды ”admin_ctf_minlvl” и ”admin_ctf_maxlvl”… повтор надо стереть…

3. Приступим к сборке… Сворачиваем MC…
DiskW
Код
cd /l2emu/L2Emu_DiskW/
JAVA_HOME=/usr/lib/jvm/java-6-sun/ ant

DataPack
Код
cd /l2emu/L2Emu_DataPack_IL/
JAVA_HOME=/usr/lib/jvm/java-6-sun/ ant

LoginServer
Код
cd /l2emu/L2Emu_LoginServer_IL/
JAVA_HOME=/usr/lib/jvm/java-6-sun/ /mvn/bin/mvn –Dmaven.test.skip=true

GameServer
Код
cd /l2emu/L2Emu_GameServer_IL/
JAVA_HOME=/usr/lib/jvm/java-6-sun/ /mvn/bin/mvn –Dmaven.test.skip=true

4. Разворачиваем MC, создаем папку /server и распаковываем в нее архивы…
LoginServer - l2j-loginserver-dist.zip (/l2emu/L2Emu_LoginServer_CT1/target/)
GameServer – l2j-gameserver-dist.zip (/l2emu/L2Emu_GameServer_IL/target/)
DataPack – L2Emu_DataPack_IL.zip (/l2emu/L2Emu_DataPack_IL/build/)

5. После распаковки в папке /server, получилось 5 папок l2j-gameserver, l2j-loginserver, guides, tools и sql… Для удобства я переименовал папки l2j-gameserver и l2j-loginserver в game и login соответственно… а также перенес содерджимое папок game/dist и login/dist в game и login соответственно…

6. Распаковываем содержимое папки /diskw/www/ из архива DiskW - L2Emu_DiskW.zip (/l2emu/L2Emu_DiskW/build/) в /var/www/...

Устанавливаем базы

1. Немного подправим установщик баз… Идем в /server/tools/, редактируем файл database_installer.sh… в 1й строке надо поставить пробел между # и !/bin/bash, потом удалить все знаки ”^” и пустые строки, также заменить items_on_ground.sql, vip.sql и update_01 (…09) на itemsonground.sql, vipinfo.sql и update_1 (…9) соответственно… Сохраняем и выходим… Теперь дадим права на запуск этого файла… жмем F9 -> файл -> права доступа… отметить в 3х местах запуск/поиск и выбрать «Установить»…

2. Создаем базу ”Emu_DB”… Сворачиваем MC и выполняем:
Код
mysqladmin –pPASS CREATE ‘Emu_DB’

(пробел между –p и паролем не ставится)...

3. Устанавливаем таблицы в базу… выполняем
Код
cd /server/tools/
./database_installer.sh

вводим данные для LS: хост (localhost), базу (Emu_DB), логин (root) и пароль… вводим то же самое для GS, затем подтверждаем создание конфига (y), отказываемся от бэкапа баз LS (n), выбираем полную установку (f)… отказываемся от бэкапа баз GS (n), выбираем полную установку (f)… от обновлений отказываемся (n)…

Настраиваем сервер…

1. идем в /server/login/config/network/ редактируем файл database.properties, здесь указываем пароль к базе
Код
Password =

в этой же папке редактируем файл network.properties, здесь ставим
Код
LoginServerHostName = 0.0.0.0

2. идем в /server/login/ очищаем от ”^” и пустых строк файлы register_gameserver.sh и account_manager.sh, даем им права на запуск… также очищаем от ”^” и пустых строк файл setenv.sh…

3. Сворачиваем MC и выполняем
Код
cd /server/login/
./register_gameserver.sh

вводим 1…

Сздадим админа… выполняем
Код
./account_manager

выбираем 1, username – admin, password, accesslvl – 200… жмем 5 для выхода…

4. Разворачиваем MC и редактируем loginserver_loop.sh… очищаем от ”^” и пустых строк… заменяем
Код
java -Dfile.encoding=UTF-8 -Xmx64m net.sf.l2j.loginserver.L2LoginServer > log/stdout.log 2>&1

на
Код
java -Djava.util.logging.config.file=console.cfg -Xmx64m net.sf.l2j.loginserver.L2LoginServer

для того, чтобы ход загрузки сервера отображался в консоли...

5. идем в /server/game/config/network/ редактируем файл database.properties, здесь указываем пароль к базе
Код
Password =

в этой же папке редактируем файл network.properties,
Код
GameserverHostname = 0.0.0.0
ExternalHostname = 78.107.239.220
InternalHostname = 192.168.0.5
InternalNetworks = 192.168.0.0/255.255.255.0
OptionalNetworks = 78.107.239.220,0.0.0.0/255.255.255.255;10.211.22.200,10.0.0.0/255.255.248.0

6. идем в /server/game/ и очищаем очищаем от ”^” и пустых строк файлы setenv.sh и gameserver_loop.sh… также дать файлу gameserver_loop.sh права на запуск и заменить в нем
Код
java -Dfile.encoding=UTF-8 -Xmx712m net.sf.l2j.gameserver.GameServer > log/stdout.log 2>&1

на
Код
java -Djava.util.logging.config.file=console.cfg –Xmn128m –Xms512m –Xmx512m –server net.sf.l2j.gameserver.GameServer


Выходим из MC (F10) и переходим к запуску сервера… Логин и Гейм серверы запускаем в разных сеансах

1. LoginServer…
Код
cd /server/login/
./loginserver_loop.sh

2. GameServer…
Код
cd /server/game/
./gameserver_loop.sh



Доступ к фалам...

Возможно кому-то удобнее все подготовит в винде, а на сервер перенести уже все готовое...

1. Можно записать в винде на болванку и перенести на сервер...

Чтобы монтировать и демонтировать CD надо создать .sh файл с правами на запуск следующего содержания

Код
# !/bin/sh
retval=`/bin/mount | grep /media/cdrom`
if [ -n "$retval" ];
then     /bin/umount /media/cdrom 1> /dev/null 2> /dev/null
    if [ "$?" -ne 0 ];
        then echo "Can’t unmount CDROM"
    else echo "Unmount CDROM"
    eject /dev/cdrom    
    fi
else    /bin/mount /media/cdrom 1> /dev/null 2> /dev/null
    if [ "$?" -ne 0 ];
        then echo "Can’t mount CDROM"
    else echo "Mount CDROM"
    fi    
fi


2. Доступ по SSH... я пользуюсь SSH-клиентом WinSCP ( http://winscp.net/download/winscp406setupintl.exe )...
Там все просто... вводим хост (192.168.0.5), порт (22), логин и пароль пользователя системы... через несколько секунд получаем полный доступ к файлам на сервере ...


Доступ к базам...

1. phpMyAdmin... с удаленной машины в браузере вводим:
Код
http://192.168.0.5/phpmyadmin

вводим логин и пароль... и делаем с базами что захотим...

2. Navicat... создаем новое подключение... хост - localhost, порт - 3306, логин и пароль доступа к базе... затем переходим на вкладку SSH... отмечаем галочку "Use SSH Tunnel"... хост - 192.168.0.5, порт - 22, логин и пароль пользователя системы... жмем "ОК" и подключаемся... делаем с базами, что захотим...






Обновлено: GameGuard Server пропал с свн...
Обновлено: доступ к файлам через SSH... доступ к базам с удаленной машины phpMyAdmin и Navicat...

0
T
TheDyckrill
· 02/19/2008, 12:25 AM

Цитата
на 165 строке, надо заменить 8192 на 5120…

выяснине опытным путем можно поставить 6144 (100% верно для камеля :) )

Цитата
1. LoginServer…

/server/login/
./loginserver_loop.sh

2. GameServer…

cd /server/game/
./gameserver_loop.sh


для запуска в фоновом режиме можно запустить с одного сенса, добавив в конце строки знак &

Код
1. LoginServer…
/server/login/loginserver_loop.sh &

2. GameServer…
cd /server/game/gameserver_loop.sh &

0
M
mordoor

Author

Новичок

Posts: 5

На форуме с: 12/24/2007

Репутация: +8

Рейтинг: 0

· 02/19/2008, 06:26 AM

Мануал полезный - думал сам такое накорябать для Фрюхи, но повторяться наверное не стану.
Просто попытаюсь чуть поравить и дополнить:
1) Насчёт "З.Ы. Многие вещи, например, распаковка архивов (в линуксе распаковка ДатаПака после сборки, займет несколько часов),
редактирование конфигов (!!!НО не исполняемых файлов .sh!!!), ...."
- похоже автор попался на тупости работы миднайта с архивами содержащими кучу мелких файлов. Но это же не значит что команду
(
cp /l2emusvn/L2Emu_DataPack_CT1/build/L2Emu_DataPack_CT1.zip /opt/LA2K/tmp_rep/
cp /l2emusvn/L2Emu_LoginServer/l2emusvn/trunk/l2j-loginserver-dist.zip /opt/LA2K/tmp_rep/
cp /l2emusvn/L2Emu_GameServer/l2emusvn/trunk/l2j-gameserver-dist.zip /opt/LA2K/tmp_rep/
)
&& unzip "*.zip"
кто-то отменил 8-).
Далее - не забываем о великом благе Юниксовых ФС (EXTFS/UFS) - симлинках.
Согласитесь чем мувать - копить кучи файлов скажем выстраданных лично конфигов или заплат в ГеоХате ... Или потестить только что скомпиленный GS и обнаружив
недочёты тутже откатиться на пред версию без копирования или перекомпиляции.
Короче кто не знает - man ln ;)!
И ещё - внимательно следим за мессагами от db_installer - там могут быть утерянные вещи - в пылу сборки могут потеряться.
И особо отмечу насчёт "^M" - настоятельно рекомендую не поленться и наваять фильтр который пропустит *.sh *.java *.sql файлы
заменив концы строк 0xD0xA -> 0xA.
Что касается старта (скажем авто старта при загрузке серванта -)
Я не помню как там точно в линуксах но обвязку во Фре я в первом приближении нацарапал вот так :

Код
#!/bin/sh
l2emu_enable=${l2emu_enable-"NO"}
l2emu_prefix=${l2emu_prefix-"/usr/local"}
l2emu_user=${l2emu_user-"l2emu"}
. /etc/rc.subr

name="l2emu"
rcvar=`set_rcvar`

load_rc_config $name

required_dirs="/opt/L2EMU"
required_files="${l2emu_prefix}/gs.sh ${l2emu_prefix}/gls.sh "
start_cmd="l2emu_start"
stop_cmd="l2emu_stop"

l2emu_start() {
        echo  'L2EMU LS start....!'
        su -l $l2emu_user -c "cd ${l2emu_prefix}/login;./loginserver.sh"
        su -l $l2emu_user -c "cd ${l2emu_prefix}/gameserver;./gameserver.sh"  
        echo  'L2EMU GS start....!'
        exit 0
}

l2emu_stop() {
checkyesno l2emu_enable && echo "Stopping gameserver." && \
        ${l2emu_prefix}/gs.sh  'shutdown 0'
checkyesno l2emu_enable && echo "Stopping login-server." && \
        ${l2emu_prefix}/gls.sh shutdown
        exit 0
}
run_rc_command "$1"

Соотв в /etc/rc.conf определил переменные определяющие от кого в каком каталоге и разрешен ли вообще запуск линейки.
Что такое gs.sh ? Обвязка за отправки комманд сервису через telnet-косоль. Согласитесь так его тушить корректней чем по killall -9 java 8)))
Короче man nc.
Где разрешить консоль думаю нарыть не трудно? (и думаю ясно всем что никого кроме локалхоста на неё пускать не стоит.)
Всё.
На последок я просто обязан выразить благодарность автору за удачное описание процесса и конечно
ОГРОМЕЙШИЙ РЕСПЕКТ участникам проекта L2EMU - imho имеющего все шансы стать лучшей из ява-сборок.

0
Алексей
Алексей

Administrator

Ветеран

Posts: 622

На форуме с: 02/25/2007

Репутация: +924

Рейтинг: 0

· 08/23/2008, 08:12 AM

Вроде как, уже и 8.4 есть http://mirror.yandex.ru/ubuntu-releases/8.04/

Сколько времени прошло....

— Administrator

0
Topic is closed for replies