суббота, 24 ноября 2007 г.

Установка сервера Lineage II Interlude на Gentoo Linux

Подготовим все для установки сервера Lineage. Для этого нам нужно установить и настроить apache, mysql, java. О настройке mysql и apache я сдесь рассказывать не буду. О установке и настройке apache и mysql есть полно документации в интернете. Что ж... начнем-с...
Устанавливаем apache, mysql, java:
emerge -av apache mysql emul-linux-x86-java

Система у меня 64-битная, но яву я предпочитаю использовать 32-битную, причем версии 1.5. После того как установка завершилась, начинаем скачивать сам сервер.
Пароль на скачивание: RusTeam
Сервер:
http://dump.ru/files/n/n28777960

Некоторые фиксы:
http://dump.ru/files/n/n5914616743
http://dump.ru/files/n/n71750708
http://dump.ru/files/n/n1979291406

Geodata:
ftp://geodata.devcod.com/geodata/allgeofiles8nov.zip

Pathnode:
ftp://geodata.devcod.com/pathnode/allpathnodes8nov.zip

После того как все скачали, распаковываем сервер, например в /home/lineage/, накладываем фиксы. Геодату кидаем в /home/lineage/gameserver/data/geodata, Паснод в /home/lineage/gameserver/data/pathnode.
Теперь создадим базу данных, пользователя и заполним ее:
mysql -u root -p
Enter password: ******
mysql> CREATE DATABASE `l2rt`;
mysql> GRANT ALL ON l2rt.* TO l2rt@localhost IDENTIFIED BY 'PASSWORD';
mysql> use l2rt;
mysql> \. /home/lineage/sql/account_data.sql
mysql> \. /home/lineage/sql/accounts.sql
mysql> \. /home/lineage/sql/armorsets.sql
mysql> \. /home/lineage/sql/armor.sql
mysql> \. /home/lineage/sql/auction_bid.sql
mysql> \. /home/lineage/sql/auction.sql
mysql> \. /home/lineage/sql/auction_watch.sql
mysql> \. /home/lineage/sql/augmentations.sql
mysql> \. /home/lineage/sql/auto_chat.sql
mysql> \. /home/lineage/sql/auto_chat_text.sql
mysql> \. /home/lineage/sql/boxaccess.sql
mysql> \. /home/lineage/sql/boxes.sql
mysql> \. /home/lineage/sql/castle_door.sql
mysql> \. /home/lineage/sql/castle_doorupgrade.sql
mysql> \. /home/lineage/sql/castle_manor_procure.sql
mysql> \. /home/lineage/sql/castle_manor_production.sql
mysql> \. /home/lineage/sql/castle_siege_guards.sql
mysql> \. /home/lineage/sql/castle.sql
mysql> \. /home/lineage/sql/character_friends.sql
mysql> \. /home/lineage/sql/character_hennas.sql
mysql> \. /home/lineage/sql/character_macroses.sql
mysql> \. /home/lineage/sql/character_quests.sql
mysql> \. /home/lineage/sql/character_recipebook.sql
mysql> \. /home/lineage/sql/character_recommends.sql
mysql> \. /home/lineage/sql/character_shortcuts.sql
mysql> \. /home/lineage/sql/character_skills_save.sql
mysql> \. /home/lineage/sql/character_skills.sql
mysql> \. /home/lineage/sql/characters.sql
mysql> \. /home/lineage/sql/character_subclasses.sql
mysql> \. /home/lineage/sql/char_templates.sql
mysql> \. /home/lineage/sql/clan_data.sql
mysql> \. /home/lineage/sql/clanhall_functions.sql
mysql> \. /home/lineage/sql/clanhall.sql
mysql> \. /home/lineage/sql/clan_privs.sql
mysql> \. /home/lineage/sql/clan_skills.sql
mysql> \. /home/lineage/sql/clan_subpledges.sql
mysql> \. /home/lineage/sql/clan_wars.sql
mysql> \. /home/lineage/sql/class_list.sql
mysql> \. /home/lineage/sql/cursed_weapons.sql
mysql> \. /home/lineage/sql/dimensional_rift.sql
mysql> \. /home/lineage/sql/droplist.sql
mysql> \. /home/lineage/sql/enchant_skill_trees.sql
mysql> \. /home/lineage/sql/etcitem.sql
mysql> \. /home/lineage/sql/fishing_skill_trees.sql
mysql> \. /home/lineage/sql/fish.sql
mysql> \. /home/lineage/sql/forums.sql
mysql> \. /home/lineage/sql/gameservers.sql
mysql> \. /home/lineage/sql/games.sql
mysql> \. /home/lineage/sql/global_tasks.sql
mysql> \. /home/lineage/sql/helper_buff_list.sql
mysql> \. /home/lineage/sql/henna.sql
mysql> \. /home/lineage/sql/henna_trees.sql
mysql> \. /home/lineage/sql/heroes.sql
mysql> \. /home/lineage/sql/itemsonground.sql
mysql> \. /home/lineage/sql/items.sql
mysql> \. /home/lineage/sql/locations.sql
mysql> \. /home/lineage/sql/lvlupgain.sql
mysql> \. /home/lineage/sql/mapregion.sql
mysql> \. /home/lineage/sql/merchant_areas_list.sql
mysql> \. /home/lineage/sql/merchant_buylists.sql
mysql> \. /home/lineage/sql/merchant_lease.sql
mysql> \. /home/lineage/sql/merchant_shopids.sql
mysql> \. /home/lineage/sql/merchants.sql
mysql> \. /home/lineage/sql/minions.sql
mysql> \. /home/lineage/sql/mods_wedding.sql
mysql> \. /home/lineage/sql/npcskills.sql
mysql> \. /home/lineage/sql/npc.sql
mysql> \. /home/lineage/sql/olympiad_nobles.sql
mysql> \. /home/lineage/sql/pets.sql
mysql> \. /home/lineage/sql/pets_stats.sql
mysql> \. /home/lineage/sql/pledge_skill_trees.sql
mysql> \. /home/lineage/sql/posts.sql
mysql> \. /home/lineage/sql/quest_global_data.sql
mysql> \. /home/lineage/sql/raidboss_points.sql
mysql> \. /home/lineage/sql/raidboss_spawnlist.sql
mysql> \. /home/lineage/sql/raidboss_status.sql
mysql> \. /home/lineage/sql/random_spawn_loc.sql
mysql> \. /home/lineage/sql/random_spawn.sql
mysql> \. /home/lineage/sql/record.sql
mysql> \. /home/lineage/sql/seven_signs_festival.sql
mysql> \. /home/lineage/sql/seven_signs.sql
mysql> \. /home/lineage/sql/seven_signs_status.sql
mysql> \. /home/lineage/sql/siege_clans.sql
mysql> \. /home/lineage/sql/skill_learn.sql
mysql> \. /home/lineage/sql/skill_spellbooks.sql
mysql> \. /home/lineage/sql/skill_trees.sql
mysql> \. /home/lineage/sql/spawnlist.sql
mysql> \. /home/lineage/sql/teleport.sql
mysql> \. /home/lineage/sql/topic.sql
mysql> \. /home/lineage/sql/weapon.sql
mysql> \. /home/lineage/sql/zone_cuboid.sql
mysql> \. /home/lineage/sql/zone_cylinder.sql
mysql> \. /home/lineage/sql/zone_npoly.sql
mysql> \. /home/lineage/sql/zone.sql

Теперь будем настраивать сервер.
Редактируем /home/lineage/gameserver/config/server.properties. Менять мы будем всего 4 параметра:
ExternalHostname=172.16.23.125 #прописываем внешний ип
InternalHostname=172.16.23.125 #прописываем ип локалки
Driver=com.mysql.jdbc.Driver
URL=jdbc:mysql://localhost/l2rt
Login=l2rt
Password=PASSWORD #пароль, который мы задавали выше

Редактируем /home/lineage/login/config/loginserver.properties:
ExternalHostname=172.16.23.125 #прописываем внешний ип
InternalHostname=172.16.23.125 #прописываем ип локалки
Driver=com.mysql.jdbc.Driver
URL=jdbc:mysql://localhost/l2rt
Login=l2rt
Password=PASSWORD #пароль, который мы задавали выше

Теперь загераем наш геймсервер и создадим аккаунт админа:

# cd /home/lineage/login/
# ./RegisterGameServer.sh
Welcome to RT GameServer Regitering
Enter The id of the server you want to register
Type 'help' to get a list of ids.
Type 'clean' to unregister all currently registered gameservers on this LoginServer.
Your choice:
1
Server Registered hexid saved to 'hexid(server 1).txt'
Put this file in the /config folder of your gameserver and rename it to 'hexid.txt'
# cp hexid\(server\ 1\).txt ../gameserver/config/hexid.txt
# ./startSQLAccountManager.sh
Please choose an option:

1 - Create new account or update existing one (change pass and access level).
2 - Change access level.
3 - Delete existing account.
4 - List accounts & access levels.
5 - Exit.
Your choice: 1
Username: wiseelf
Password: *******
Access level: 200

Ну собственно установка сервера завершена. Теперь редактируйте конфиги сервера и настраивайте его под себя.
Теперь просто запускаем game и login сервер. :)
# cd /home/lineage/gameserver/
# ./startGameServer.sh
# cd ../login
# ./startLoginServer.sh

Процесс запуска гейм и логин сервера можно узреть в /home/lineage/gameserver/log/stdout.log и в /home/lineage/login/log/stdout.log соответственно.

Играем и наслаждаемся! Linux forever!

P.S. Я использовал сервер команды RusTeam

вторник, 8 мая 2007 г.

vsFTPd.devnet.ru

Порадовали ребята с vsftpd.devnet.ru. Исправили несколько багов и вообще хорошо поработали. Наконец у меня исчезли проблемы с правами файлов залитыми анонимусами. :)
P.S. Всем кто пользуется vsftpd рекомендую посетить сайт http://vsftpd.devnet.ru/. В этой сборке есть много приятных моментов ;)
P.P.S. Про установку и настройку vsftpd можно прочитать сдесь, дополнения тут.

пятница, 30 марта 2007 г.

Lineage2 C5 авторестарт

Решил поделится тем как я прикрутил к серверу авторестарт. Деляется это просто, например так:
mysql>INSERT INTO global_tasks (id, task, type, last_activation, param1, param2, param3) VALUES ('4', 'restart', 'TYPE_GLOBAL_TASK', '0', '1', '11:50:00', '600');
mysql>INSERT INTO global_tasks (id, task, type, last_activation, param1, param2, param3) VALUES ('5', 'restart', 'TYPE_GLOBAL_TASK', '0', '1', '23:50:00', '600');

Собственно два авторестарта в 12:00 и 00:00.

четверг, 25 января 2007 г.

Запись на ntfs с помощью ntfs-3g

Сделал себе запись на ntfs с помощью ntfs-3g драйвера.
Шаг 1. Установка.
Так как это софт еще "сырой", то для того чтобы использовать его на стабильной системе его нужно размаскировать:
echo "sys-fs/ntfs3g" >> /etc/portage/package.keywords
echo "sys-fs/fuse" >> /etc/portage/package.keywords

sys-fs/fuse мы размаскировали, как зависимость к ntfs3g.
Теперь собственно устанавливаем:
emerge sys-fs/ntfs3g

После установки выполняем:
modules-update

Шаг 2. Использование
Полный доступ для всех пользователей:
ntfs-3g /dev/sda1 /mnt/windows

Тоже самое, только с поддержкой конкретной локали:
ntfs-3g /dev/sda1 /mnt/windows -o locale=ru_RU.utf8

Монтирование при загрузке
echo "/dev/sda1 /mnt/windows ntfs-3g locale=ru_RU.utf8 0 0" >> /etc/fstab

Русский распознается и без locale=ru_RU.utf8 в принципе :)

В общем, работает запись отлично :)

пятница, 19 января 2007 г.

vsftpd

Наконец-то я выбрал таки ftp-сервер. И выбор мой как вы поняли остановился на vsftpd, правда не на официальном, а на vsftpd от http://vsftpd.devnet.ru/rus/, т.к. он имеет дополнительные возможности.
Теперь опишу причины, по которым я выбрал именно vsftpd:
1. Простой и удобный файл конфигурации с отличной документацией в man vsftpd.conf.
2. Виртуальные пользователи. Отлично работает, хотя мне это пока не нужно, но кто знает.
3. Мощнейшее управление пользователями.
4. Интеграция с SSL. (Еще предстоит настроить)
5. Поддержка перекодировок. Можно прописывать для каждого пользователя отдельно.
6. Возможность задавать правила доступа для анонимных пользователей.

Шаг 1. Установка. (Gentoo Linux)
Скачиваем архив с ebuild'ом vsftpd-2.0.5e.
Распаковываем содержимое в свой overlay, у меня это /usr/overlay/portage. Далее скачиваем сам vsftpd и кладём в /usr/portage/distfiles/.
После того как все это сделано, набираем emerge vsftpd.
Шаг 2. Настройка.
Сначала нужно определиться что нам нужно от сервера. Лично мне нужно было, пускать анонимусов с правом записи в /home/ftp/incomming и чтением всего остального. Далее пускать только определенных локальных пользователей в определенные директории. Для анонимусов, т.к. они все у меня пользуются виндовсом, сделать перекодировку utf8(сервер)<->cp1251(клиент), для остальных пользователей перекодировку не делать.
Конфигурационный файл сервера находится в /etc/vsftpd/vsftpd.conf.
listen=YES #запускается без использования xinetd.
listen_address=172.16.23.125 #привязка к ip и порту.
listen_port=30005
anonymous_enable=YES #разрешаем вход анонимусам.
local_enable=YES #разрешаем вход локальным пользователям.
write_enable=YES #разрешаем выполнение команд STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE.
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES #даем анонимусам право записи и т.п.
dirmessage_enable=YES #показывать сообщение при первом входе в каталог.
connect_from_port_20=YES
chown_uploads=YES #изменять владельца загуржаемых файлов
chown_username=ftpserg #собственно указывается новый владелец
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
data_connection_timeout=120
nopriv_user=nobody
ascii_upload_enable=NO
ascii_download_enable=NO
ftpd_banner=Welcome to CrazyNetwork FTP server.
convert_charset_enable=YES #включаем перекодировку
local_charset=UTF8 #локаль сервера
remote_charset=WIN1251 #локаль клиента
user_config_dir=/etc/vsftpd/vusers #указываем директорию с конфигурациями наших пользователей
chroot_local_user=YES #чрутим локальных пользователей в их домашний каталог
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_file=/etc/vsftpd/user_list #список пользователей которым позволено подключаться к серверу
userlist_enable=YES # сами
userlist_deny=NO # правила

В /etc/vsftpd/user_list прописываем имена пользователей, которым будет разрешено подключаться к серверу, каждое имя с новой строки, анонимуса тоже следует вписать :)
Сейчас у нас сервер настроен на допуск пользователей из списка с перекодировкой utf8<->cp1251. Для пользователя ftpserg отключим перекодировку. Для этого создаём файл: /etc/vsftpd/vusers/ftpserg и прописываем туда строку:
convert_charset_enable=NO

Если этого пользователя надо чрутнуть не в /home/ftp, а наример в /var/www/mysite.com/, то в этот же файл пишем следующее:
local_root=/var/www/mysite.com/

Да, еще нужно правильно выставить правда на содержимое вашего ftp-сервера. Чтобы анонимусы могли писать в incomming на это папку следует поставить права 777 или 773, кому как нравится :)
Шаг 3. Запуск.
/etc/init.d/vsftpd start

И все, радуемся жизни :)

P.S. Про SSL еще напишу.