Заметьте, здесь будет использоваться исключительно сервера ОСЬ без 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_логин_жава_процесса Аналогично с гейм сревером, чудесов здесь нет. Вот и все "сложности". Дерзайте.
Лучше использовать SIGTERM (15) вместо. SIGKILL (9), чтобы ГС мог корректно остановиться, kill -9 применяется только когда ГС повис наглухо. Так же лучше применять ключ ps -ux (для вывода только процессов запущенных от текущего юзера) и вывод можно сразу фильтровать через grep пример ps ux | grep loop.sh или java.
А у меня когда скрин запущен, иногда сервер вырубается, потом я вырубаю все скрины, но сервер не собирается запускаться, пишет failed to bind the port. Как решить это не знаю.
Если еще актуально, ошибка failed to bind the port возникает из-за того, что порт, на котором пытается запуститься сервер, уже занят. Занятые порты можно посмотреть командой "ss -tlpn".