[Мануал] Установка сервера Lineage 2 на CentOS

Тема в разделе "Centos", создана пользователем Артур, 6 ноя 2017.

?

Полезно?

  1. Да

    4 голосов
    100,0%
  2. Нет

    0 голосов
    0,0%
  1. Артур

    Артур Активный участник

    Регистрация:
    6 ноя 2017
    Сообщения:
    31
    Симпатии:
    4
    Заметьте, здесь будет использоваться исключительно сервера ОСЬ без GUI интерфейса (gnome/kde/xfce и других). Пэтому, рукоблудных ребят не знаюших основ никсо-осей попрошу клацнуть крестик в браузере, статья для вас бесполезна.
    Итак, статью я буду вести под 2-мя углами :
    1. В том случае, если управляете удаленно сервером из под вендо-оси (для слабонервных)
    2. Если вы управляете удаленным сервером из под NIX-оси (если у вас дома убунту или дебиан, будет актуально).

    Итак, приступим.
    1. Запасаемся необходимым софтом, для управления dedicated сервером из под Windows OS :

    • Нам понадобиться любой шелл-клиент :
      - Putty : скачать с офф сайта / Скачать с зеркала - putty
    • b. Для удобства, мы возьмём любой эмуль файловой системы на основе SSH-подключения.
      - WineSCP : Скачать с оффсайта / Скачать с зеркала winescp
    • c. Для линуксоидов, всё намного проще. Нам не понадобиться никакого левого софта, у нас уже всё есть. Этот пункт вы можете пропустить (убунтушники, дебовшики и другие).

    2. Подключаемся к Dedicated сервер через эмулятор шелл-клиента(windows) или через шеллклиент(linux).
    Здесь нет ничего сложного.
    a. Если на хом-компьютере у вас стоит windows и вы скачали выше изложеный софт - запускаем "putty.exe" и подключаемся к нашему серверу.

    * Обратите внимание, что в строку "HostName (or IP)" вы должны указать либо домен, на который сконфигурирован ваш dedicated, либо же IP дедика (высылают в заявке после заказа).
    После нажатия "open" у вас запросит подтверждение ключа ssh(жмём "ok").
    Теперь, у вас запросит "login" а после и "password" для входа на сервер.

    Найти эти данные, вы можете в заявке от представителя дедика (после оренды/покупки они их предоставляют).
    После входа, вы увидите командную строку. Уберите пока ваши ручки подальше от неё, иначе беды не миновать.

    b. Для заядлых собратьев линуксоидов, есть доволи примитивный пример подключения к другой *NIX оси.
    Для этого, открываем консоль и выполняем :

    ssh root@test

    Где, test - это адрес вашего сервера (или его IP), а "root" - это имя пользователя оси.
    Так же, принимаем ключ (permament, <p>), а после вводим пароль. Всё, мы в консоли, можете блестнуть умом и вывести "top".

    3. Теперь нам нужно установить на наш dedicated сервер нужные вещи :
    - Java JDK х
    - MySQL server + mysql console client
    Другого нам не понадобиться, поэтому мы идем ставить выше изложеные платформы.

    a. Установим "Java JDK". Если вы не тру линуксоид и билды разной бяки с исходных кодов под различными библиотеками вас не возбуждают, то можно доволи просто установить всё с репозиториев. Сначала находим нужную нам версию java. К примеру Вам надо 8-я версия.
    Что бы что то найти в centos репозиториях наберите команду

    yum search java
    yum search java-
    Загружены модули: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: fr.mirror.babylon.network
    * epel: fr.mirror.babylon.network
    * extras: centos.mirrors.ovh.net
    * updates: fr.mirror.babylon.network
    =================================================================== N/S Matched: java- ====================================================================
    java-dirq-javadoc.noarch : Javadocs for java-dirq
    java-service-wrapper-javadoc.noarch : API documentation for java-service-wrapper
    java-sleep-javadoc.noarch : Javadocs for java-sleep
    munin-java-plugins.noarch : java-plugins for munin
    pki-java-tools.noarch : Certificate System - PKI Java-Based Tools
    pki-java-tools-javadoc.noarch : Certificate System - PKI Java-Based Tools Javadocs
    R-java-devel.i686 : Development package for use with Java enabled R components
    R-java-devel.x86_64 : Development package for use with Java enabled R components
    apache-ivy.noarch : Java-based dependency manager
    genders-java-devel.i686 : Java Development libraries
    genders-java-devel.x86_64 : Java Development libraries
    glite-jobid-api-java-javadoc.noarch : Java API documentation for glite-jobid-api-java
    glite-lb-client-java-javadoc.x86_64 : Java API documentation for glite-lb-client-java
    glite-security-util-java-javadoc.noarch : Javadocs for glite-security-util-java
    gstreamer-java-javadoc.x86_64 : Javadocs for gstreamer-java
    gstreamer-java-swt.x86_64 : SWT support for gstreamer-java
    java-1.5.0-gcj.x86_64 : JPackage runtime compatibility layer for GCJ
    java-1.5.0-gcj-devel.x86_64 : JPackage development compatibility layer for GCJ
    java-1.5.0-gcj-javadoc.x86_64 : API documentation for libgcj
    java-1.5.0-gcj-src.x86_64 : Source files for libgcj
    java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
    java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
    java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
    java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
    java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
    java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
    java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
    java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
    java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
    java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
    java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
    java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on
    java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
    java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on
    java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
    java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with full debug on
    java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
    java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
    java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
    java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages with debug on
    java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
    java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with debug on
    java-clearsilver.i686 : Java interface to the ClearSilver HTML templating system
    java-dirq.noarch : Directory based queue
    java-service-wrapper.x86_64 : Java service wrapper
    java-sleep.noarch : Multi-paradigm scripting language for Java
    jgraph.x86_64 : Java-based Diagram Component and Editor
    libguestfs-java-devel.x86_64 : Java development package for libguestfs
    libreadline-java-javadoc.x86_64 : Javadoc for libreadline-java
    libvirt-java-devel.noarch : Compressed Java source files for libvirt-java
    libvirt-java-javadoc.noarch : Java documentation for libvirt-java
    lpg-java-compat.noarch : Compatibility Java runtime library for LPG 1.x
    plplot-java-devel.i686 : Development files for using PLplot GNOME
    plplot-java-devel.x86_64 : Development files for using PLplot GNOME
    ppl-java-javadoc.x86_64 : Javadocs for ppl-java
    velocity.noarch : Java-based template engine
    voms-api-java-javadoc.noarch : Virtual Organization Membership Service Java API Documentation

    Name and summary matches only, use "search all" for everything.
    Для установки 8-й Версии нас интиресует строка
    java-1.8.0-openjdk.x86_64
    (Надеюсь по аналогии догадаетесь что для версии 7-й меняется 2-я цифра.) Пример:
    java-1.7.0-openjdk.x86_64

    Для установки нужной версии пишем:

    yum install java-1.8.0-openjdk.x86_64

    Дальше я думаю догадаетесь, не в 1-м классе.
    После установки OpenJDK желательно проверить что мы поставили (бывают разные индивиды 'администраторов') :

    java -Xmx100m -version

    Если ваш результат таков :

    test:~# java -Xmx100m -version
    openjdk version "1.8.0_151"
    OpenJDK Runtime Environment (build 1.8.0_151-b12)
    OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

    или примерно таков, то можно идти дальше.
    Если же обругало мол нет таково, что за команда, иди в лес - вернуться на шаг выше.

    b. Установим mysql-server и mysql-client.
    Опять же, если билды с сырцов вас не возбудят, используйте репозитории. Это очень просто, для установки нам понадобиться лиш 1 команда :

    yum install mysql-server mysql-client

    После установки всей этой гадости нужно настроить пароль для пользователя root сервера БД.
    Запустим сервер БД:

    service mysqld start

    Для первоначальной настройки выполните команду:

    mysql_secure_installation (сразу будет запрошен пароль root. Так как Вы его еще неназначали то просто нажимаем "enter")

    Далее следуем подсказкам из вывода настроищика и отвечаем на его вопросы.

    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
    SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!


    In order to log into MySQL to secure it, we'll need the current
    password for the root user. If you've just installed MySQL, and
    you haven't set the root password yet, the password will be blank,
    so you should just press enter here.

    Enter current password for root (enter for none):
    OK, successfully used password, moving on...

    Setting the root password ensures that nobody can log into the MySQL
    root user without the proper authorisation.

    Set root password? [Y/n] Y
    New password:
    Re-enter new password:
    Password updated successfully!
    Reloading privilege tables..
    ... Success!


    By default, a MySQL installation has an anonymous user, allowing anyone
    to log into MySQL without having to have a user account created for
    them. This is intended only for testing, and to make the installation
    go a bit smoother. You should remove them before moving into a
    production environment.

    Remove anonymous users? [Y/n] Y
    ... Success!

    Normally, root should only be allowed to connect from 'localhost'. This
    ensures that someone cannot guess at the root password from the network.

    Disallow root login remotely? [Y/n] n
    ... skipping.

    By default, MySQL comes with a database named 'test' that anyone can
    access. This is also intended only for testing, and should be removed
    before moving into a production environment.

    Remove test database and access to it? [Y/n] Y
    - Dropping test database...
    ... Success!
    - Removing privileges on test database...
    ... Success!

    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.

    Reload privilege tables now? [Y/n] Y
    ... Success!

    Cleaning up...



    All done! If you've completed all of the above steps, your MySQL
    installation should now be secure.

    Thanks for using MySQL!


    4. Теперь, нам нужно закачать на наш выделенный сервер, собственно, нашу сборку сервера.
    Делается это довольно не сложно, 3 клика.

    a. Для windows пользователей, открываем ранее скачанный WineSCP(winSCP) и подключаемся к дедику(абсолютно так же как и в пути - вводим login и пароль и радуемся).
    Как видите - есть уже какое то удобство (не все тру дъяконы владеют консолью, не хочу усложнять вам жизнь).
    Ранее, у нас лежит готовая сборочка, что же нам нужно? Распаковываем её у нас на машыне (домашней) в winescp создаем на сервере себе папку под эти файлы (к примеру, я буду опираться /root/server).
    Создали - молодцы. Заходим в эту папку, в соседнем окне - у нас на железяке находим папку сервером. Тыкаем на нашу папку с сервером(хом-тачька) и жмём "F5". Воуля, пошла закачька на сервер всего нашего метало-сбора. Ждём окончания и движемся дальше.

    b. Для товарещей линуксоидов, есть довольно приятная без лишних извращений альтернатива.
    Нам, достаточно открыть вкладку "places" (GNOME) и выбрать "connect to server ...".
    Выбираем тип подключения : ssh, вводим данные.
    И о чудо, ваш серверный интерфейс схавал гном оболочку. Думаю проблем не возникнет что дальше делать :)

    5. Установка сервера.
    Тут всё довольно просто. Я привык начинать с mysql. Для этого создадим Базу данных "Произвольное имя(я буду использовать unihost так как люблю данный хостинг" :

    mysql -u root -p
    password :

    При этому, указываем пароль, заданный при установке mysql.
    Подключились - молодцом. Можно почитать соседние статьи о работе с mysql.
    Вкратце, создаем БД :

    CREATE DATABASE `unihost`;

    Выходим из mysql консоли :

    exit

    Обратите внимание, что SQL у вас может быть не запущен, поэтому проверьте и запустите если нада (или перезапустите) :

    service mysqld restart

    Отлично, с mysql разобрались. Идём дальше.
    Теперь, мы установим наши БД. Идиотизма множества тупых пользователей повторять не будем(бекап бД на лок тачьке и вставка её на сервер).
    Открываем датабейс инсталлер.sh перед этим дав ему +rwx права :

    cd /root/server/tools

    Далее, даём права :

    chmod +x *.sh

    я дал права всем .sh файлам в той папке(мне лень вбивать их имена, страшного ничего не случиться).
    Ну и теперь, запускаем его :

    ./database_installer.sh
    или же :
    sh ./database_installer.sh

    И тут вас ждём привычный вам установщик : запросит ввести хост БД, имя и пароль пользователя, а так же название БД. (если разработчик сборки позаботился о наличии инсталятора. )
    Установили БД - молодцы, идём дальше.

    Теперь, нам нужно подконфигурировать наши любимые конфиги.
    Делать это можно рядом способов, делайте тем, который вам больше подходит :
    - Открываем WinSCP, доходим до нужного конфига и тыкаем 2 раза мышкой. Воуля.
    - Открываем putty, доходим до файла (cd / ls) и тыкаем : nano "имя_файла". Надеюсь с текст-редактором Nano вы разберетесь(Cntrl+x - выход, Cntrl+o - запись).
    - Можно и скачать файл себе, у себя повертеть, а потом залить на сервер.
    - Линуксоиды - выше изложеными методами, или гномо-верженским эдитором, или нано.
    Теперь, нам нужно запустить регистрацию гейм сервера.
    Делаеться здесь доволи всё просто.
    Для начала доходим до него :

    cd /root/server/l2jserver-game/

    Выдаем ему права экскута(запуска) :

    chmod +x *.sh

    Ну и запускаем :

    ./registergameserver.sh

    Дальше - понятные вам действия.
    Отлично, конфиги настроены, почти запустились как говориться.

    6. Запуск сервера.
    Здесь, всё проще дальше куда некуда.
    Но все же, мы рассмотрим 1-2 варианта, для удобства.
    По сути, всё сводиться в 2-3 клика - запуск парочки .sh файлов.
    Для начала, выдаем права запуска :

    cd /root/server/l2jserver-login/
    chmod +x *.sh

    Выдали - отлично. Проверим .sh файлы на "грамотность".
    Откроем его :

    nano startLoginServer.sh

    Учить .sh архитектуру мы не будем, используйте гугл, поможет.
    Одно скажу - там не должно быть бяки вида "xtern" функций.
    Так же, обратите внимание на строку запуска мейн-классов. Зачастую "мега-девелоперы" творят чудеса, допуская простую ошибку - перед адресом библиотеки не ставя "./", чему наглядный пример - -cp lib\l2jserver.jar:и.т.д. Грамматически, это звучит так : -cp ./lib/l2jserver.jar:итд. Не бойтесь гугла, спрашивайте, он всё знает ))
    Если файлы поправлены, можно балдеть дальше.
    Пробуем запустить :

    ./startLoginServer.sh
    или
    sh ./startLoginServer.sh

    Если выдаст ряд ошибок - читайте пару строк выше.
    Запустили - молодцы. Аналогичным методом запускаем и конфижем гейм сервер.

    7. Полезные "пряники".
    Зачастую сильное гугло-напрягание выносит моСК некоторым пользователям, да и удобней иметь всё 'готовенькое'.
    Дам вам ряд полезных "пряников" мониторинга и управления.

    a. Как узнать, запущен ли сервер?
    Зделать это доволи просто, не включая клиента и не насилуя себе моСК.
    Выполняем :

    ps -ax
    или же поструктурно :
    ps -afx

    В ответ вам выпишит ряд запущеных процессов и их ID-ы.
    Нам нужны 2 процесcа : 1-ый это java -Xmx128m com.sf и тд (с префиксами логин сервера). Это значит, что логин-сервер работает. Аналогично ищем процесс гейм-сервера.
    Можно так же, прощупать лог-файлы (если конешно прямота рук вам позволила настроить .sh их запуска и логирования) : идём в папку /root/server/l2jserver/log -> ищем файл stdout.log (или java.log) и читаем его содержимое (это и есть ваш любимый вендо-лог, только в файле).

    b. Как выключить сервер не заходя в игру?
    Делаеться это очень просто. Выводим список процессов и убиваем bash процессы, а в след за ними - сами процессы.
    Заметте, пока вы не убьете баш процессы (bash ... /loginserver_loop.sh) - вы не выключите логин сервер, хоть тресните.
    вывод :

    ps -ax

    Выключаем :

    kill -9 id_баш_процесса
    kill -9 id_логин_жава_процесса

    Аналогично с гейм сревером, чудесов здесь нет.

    Вот и все "сложности". Дерзайте.
     
  2. Fallen angel

    Fallen angel †_Moderator_†
    Moderator

    Регистрация:
    12 ноя 2017
    Сообщения:
    3
    Симпатии:
    1
    Лучше использовать SIGTERM (15) вместо. SIGKILL (9), чтобы ГС мог корректно остановиться, kill -9 применяется только когда ГС повис наглухо.

    Так же лучше применять ключ ps -ux (для вывода только процессов запущенных от текущего юзера) и вывод можно сразу фильтровать через grep
    пример ps ux | grep loop.sh или java.
     
    Maiden7 нравится это.
  3. Dalyday

    Dalyday Новичок

    Регистрация:
    4 апр 2021
    Сообщения:
    1
    Симпатии:
    0
    Skype:
    DalydayHV
    А у меня когда скрин запущен, иногда сервер вырубается, потом я вырубаю все скрины, но сервер не собирается запускаться, пишет failed to bind the port. Как решить это не знаю.
     
  4. bofh666

    bofh666 Новичок

    Регистрация:
    28 июл 2021
    Сообщения:
    1
    Симпатии:
    0
    Skype:
    uin75670316
    Если еще актуально, ошибка failed to bind the port возникает из-за того, что порт, на котором пытается запуститься сервер, уже занят. Занятые порты можно посмотреть командой "ss -tlpn".
     

Партнеры