Настройте Ragnarok Online Server на Ubuntu 14.04 x64

В тази статия ще настроим Ragnarok Online Server на Ubuntu 14.04 x64. Можете да влезете като root или потребител с привилегии на суперпотребител. По-безопасно е да настроите това като потребител без root права със sudo. В този урок ще използваме сървърните файлове rAthena.

Ако използвате Windows и имате Ubuntu Server (VPS или Dedicated), ще ви трябват следните програми.

  • FileZilla
  • PuTTY
  • Текстов редактор (препоръчва се Sublime или Notepad++)

Изисквания

  • apache2 - Ако планирате да използвате phpMyAdmin за отдалечен достъп до mysql и настройка на вашия уебсайт.
  • php5 - За уеб и phpMyAdmin.
  • phpmyadmin - Отдалечен достъп до MySQL с помощта на уеб браузър.
  • mysql-server - нашата база данни за сървъра за игри.
  • mysql-клиент
  • git
  • направи
  • gcc
  • libmysqlclient-dev
  • zlib1g-dev
  • libpcre3-dev - По избор, за поддръжка на PCRE.
  • libssl-dev - Задължително за компилиране с MySQL 5.5.

Можете да се обърнете към това ръководство относно инсталирането на Apache, MySQL и PHP.


Инсталиране на необходимите пакети

Изпълнете тези команди през SSH.

  • root потребител:

    apt-get install php5 phpmyadmin mysql-server mysql-client git make gcc libmysqlclient-dev zlib1g-dev libpcre3-dev
    
  • Не-root с привилегии sudo:

    sudo apt-get install php5 phpmyadmin mysql-server mysql-client git make gcc libmysqlclient-dev zlib1g-dev libpcre3-dev
    

След успешното инсталиране на сървърните изисквания, нека продължим с инсталирането и конфигурирането на сървърните файлове.


Изтегляне на файловете на сървъра

Сега ще получим най-новите актуализации на сървърните файлове на rAthena. Това са файловете, необходими за стартиране на Ragnarok Online сървър. Има и други сървърни файлове, които могат да се използват, като Hercules и eAthena, но в този урок ние използваме rAthena. Изпълнете командата по-долу, за да изтеглите файловете.

    git clone https://github.com/rathena/rathena.git ~/rAthena

Това ще постави всички файлове вътре rAthenaв текущата ви директория в терминала.

За да актуализирате файловете на сървъра до последната ревизия, изпълнете тази команда.

    cd rAthena
    git pull

Настройка на MySQL

В тази част конфигурираме MySQL за базата данни на нашия сървър. Първо проверете дали вашият MySQL сървър работи.

    service mysql status

Ако не работи, въведете тази команда.

    service mysqld start

След като изпълните командите по-горе, отворете MySQL конзолата.

    mysql -u root -p

Ще бъдете помолени да въведете вашата root парола. След като влезете, въведете следните команди, за да създадете базата данни за нашия сървър.

CREATE DATABASE (your ragnarok database name); -- We'll name it "ragnarok".

    mysql> CREATE DATABASE ragnarok;

След това създайте нов потребител за Ragnarok DB и регистрирайте DB.

GRANT ALL ON ragnarok.* TO yourdatabaseusername@localhost IDENTIFIED BY "yourdesiredpassword"; -- We will create a new user called admin with a password of 123456.

    mysql> GRANT ALL ON ragnarok.* TO admin@localhost IDENTIFIED BY "123456";

Можете да замените localhost с IP адрес, ако искате потребителят да има отдалечен достъп до вашия MySQL сървър.

Създайте база данни с регистрационни файлове за регистрите на играта Ragnarok.

CREATE DATABASE (your log database name) -- We'll name it "log".

    mysql> CREATE DATABASE log;

Задайте разрешения за потребителя, който създадохме по-рано с име admin .

    mysql> GRANT ALL ON log.* TO admin@localhost;

Възстановете необходимите таблици във вашата база данни Ragnarok и журнали. Актуализирайте паролата си след -pтова.

mysql> quit;

mysql -u admin -p123456 ragnarok  < /path/to/your/rathena folder/sql-files/main.sql
mysql -u admin -p123456 log < /path/to/your/rathena folder/sql-files/logs.sql

Създаване на акаунт за игра

Използваме phpMyAdmin, който инсталирахме по-рано за достъп до базата данни. Достъп до phpMyAdmin през вашия уеб браузър.

Изберете ragnarokбазата данни и изберете loginтаблицата. Можем да видим, че има един запис в тази таблица. Все още не го изтривайте/променяйте. Използва се от сървъра. За да създадете акаунт за игра, щракнете върху раздела SQL, докато сте на loginмасата, за да отворите редактора на заявки. Изпълнете следната заявка.

    INSERT INTO `ragnarok`.`login` (`account_id`, `userid`, `user_pass`, `sex`, `email`, `group_id`, `state`, `unban_time`, `expiration_time`, `logincount`, `lastlogin`, `last_ip`, `birthdate`, `character_slots`, `pincode`, `pincode_change`, `vip_time`, `old_group`) VALUES ('2000000', 'admin', 'password123', 'M', 'email@email.com', '99', '0', '0', '0', '0', '0000-00-00 00:00:00', '', '0000-00-00', '9', '', '0', '0', '0');

Вмъкнахме нов потребител в таблицата за вход със следната информация.

  • account_id = 2000000 (Винаги започвайте с 2000000, след това 2000001...)
  • userid = admin (Вашето потребителско име в играта)
  • user_pass = password123 (Паролата за вашия акаунт)
  • sex = M (M или F, не използвайте S, защото е само за сървъра)
  • email = email@email.com ( Имейлът на вашия акаунт, използван за изтриване на слотове за герои в играта)
  • group_id = 99 (вижте /rathena/conf/groups.confи проверете редовете за идентификация. Засега 99, за да направите това акаунт на GM за използване на специални команди в играта.)
  • character_slots = 9 (Брой знаци, които могат да бъдат създадени за акаунт)

Оставете другите стойности такива, каквито са. Честито. Успешно създадохте своя акаунт за играта.


Конфигуриране на сървърните файлове

Първо, трябва да знаете IP адреса на вашия сървър. Може би вече знаете това, тъй като вече е включено в информацията за сървъра на вашия Vultr VPS. Ако искате да го проверите, въведете:

    ifconfig

Потърсете частта eth0 inet addr:xxx.xxx.xxx.xxx . xxx.xxx.xxx.xxx ще бъде IP адресът на вашия сървър. Ако имате инсталиран Apache, можете да получите достъп до него, за да проверите дали вашият уеб сървър работи.

Във FileZilla влезте във вашия VPS с идентификационните данни на вашия сървър и влезте в /rAthena/confпапката.

Редактирайте char_athena.confи map_athena.confс предпочитания от вас текстов редактор.

Редактиране char_athena.confот:

    // Login Server IP
    // The character server connects to the login server using this IP address.
    // NOTE: This is useful when you are running behind a firewall or are on
    // a machine with multiple interfaces.
    //login_ip: 127.0.0.1

    // The character server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    //bind_ip: 127.0.0.1

    // Login Server Port
    login_port: 6900

    // Character Server IP
    // The IP address which clients will use to connect.
    // Set this to what your server's public IP address is.
    //char_ip: 127.0.0.1       

Да се:

    // Login Server IP
    // The character server connects to the login server using this IP address.
    // NOTE: This is useful when you are running behind a firewall or are on
    // a machine with multiple interfaces.
    login_ip: xxx.xxx.xxx.xxx

    // The character server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    //bind_ip: 127.0.0.1

    // Login Server Port
    login_port: 6900

    // Character Server IP
    // The IP address which clients will use to connect.
    // Set this to what your server's public IP address is.
    char_ip: xxx.xxx.xxx.xxx

Къде xxx.xxx.xxx.xxxе IP адресът на вашия сървър.

Във inter_athena.txtфайла направете тези промени:

    // Global SQL settings
    // overridden by local settings when the hostname is defined there
    // (currently only the login-server reads/obeys these settings)

    // MySQL Login server
    login_server_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    login_server_port: 3306
    login_server_id: ragnarok // <- change this to your mySQL User your created earlier
    login_server_pw: ragnarok // <- its password 
    login_server_db: ragnarok // <- change this if your ragnarok db you set is different
    login_codepage:
    login_case_sensitive: no

    ipban_db_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    ipban_db_port: 3306
    ipban_db_id: ragnarok // <- change this to your mySQL User your created earlier
    ipban_db_pw: ragnarok // <- its password 
    ipban_db_db: ragnarok // <- change this if your ragnarok db you set is different
    ipban_codepage:

    // MySQL Character server
    char_server_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    char_server_port: 3306
    char_server_id: ragnarok // <- change this to your mySQL User your created earlier
    char_server_pw: ragnarok // <- its password 
    char_server_db: ragnarok // <- change this if your ragnarok db you set is different

    // MySQL Map Server
    map_server_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    map_server_port: 3306
    map_server_id: ragnarok // <- change this to your mySQL User your created earlier
    map_server_pw: ragnarok // <- its password 
    map_server_db: ragnarok // <- change this if your ragnarok db you set is different

    // MySQL Log Database
    log_db_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    log_db_port: 3306
    log_db_id: ragnarok // <- change this to your mySQL User your created earlier
    log_db_pw: ragnarok // <- its password 
    log_db_db: log // <- change this if your log db you set is different
    log_codepage:
    log_login_db: loginlog

Във map_athena.txtфайла направете тези промени:

    // Character Server IP
    // The map server connects to the character server using this IP address.
    // NOTE: This is useful when you are running behind a firewall or are on
    // a machine with multiple interfaces.
    char_ip: x.x.x.x


    // The map server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    //bind_ip: 127.0.0.1

    // Character Server Port
    char_port: 6121


    // Map Server IP
    // The IP address which clients will use to connect.
    // Set this to what your server's public IP address is.
    map_ip: x.x.x.x

    // Map Server Port
    map_port: 5121

Къде xxx.xxx.xxx.xxxе IP адресът на вашия сървър.

Отворете subnet_athena.txtи задайте IP адреса.

    subnet: 255.0.0.0:x.x.x.x:x.x.x.x

И приключихме с конфигурирането на сървъра.


Компилиране на rAthena сървър

Сега е време да компилирате сървъра! В тази част трябва да знаете каква версия на клиента Ragnarok Online ще използвате, за да се свържете със сървъра. За настройка на клиента посетете тази страница .

След като решите кой клиент да използвате, нека редактираме някои файлове. Нека просто кажем, че избрахме да използваме 08072013клиента, тъй като това е стабилният клиент за подновяване.

Изпълнете тази команда на терминала:

    ./configure --enable-packetver=YYYYMMDD

Заменете YYYYMMDDс датата на клиента (преформатирано).

    ./configure --enable-packetver=20130807

Скриптът за конфигуриране ще извърши необходимите тестове и ще генерира make-файлове за нашия сървър.

След това компилирайте изходния код, като въведете тези команди:

    make server
    chmod a+x login-server && chmod a+x char-server && chmod a+x map-server

...и изчакайте да свърши. Ако направите промени във файловете в /rAthena/srcпапката, ще трябва да я компилирате отново.

    make clean
    make server

Конфигуриране на пакетната версия за клиентски връзки

Във FileZilla посочете /rAthena/dbпапката и редактирайте packet_db.txt.

Намерете този ред и редактирайте:

    //
    //packet_db_ver: 46
    packet_db_ver: default
    packet_keys_use: default

Тъй като използваме 2013-08-07Ragexeклиента, намерете посочения клиент по-долу и потърсете неговите packet_ver и packet_keys .

    //2013-08-07Ragexe
    packet_ver: 45
    packet_keys: 0x7E241DE0,0x5E805580,0x3D807D80 // [Shakto] 

Заменете стойността по подразбиране на packet_db_verи packet_keys_useв посочените клиентски стойности.

    //
    //packet_db_ver: 46
    packet_db_ver: 45
    packet_keys_use: 0x7E241DE0,0x5E805580,0x3D807D80

И спестете. Това е за уточняване кой клиент да се използва от играчите. Не искаме те да могат да използват избраната от тях версия.


Стартиране на сървъра

След компилиране на сървърните файлове, използвайте тези команди, за да стартирате сървъра.

Да започна:

    ./athena-start start

Да спра:

    ./athena-start stop

За рестартиране:

    ./athena-start restart

Ако сте срещнали грешка като тази:

    -bash: ./athena-start: /bin/sh^M: bad interpreter

... след това трябва да инсталирате dos2unix, за да конвертирате скрипта.

    apt-get install dos2unix
    dos2unix athena-start 
    chmod a+x athena-start

След като изпълните тези команди, стартирайте сървъра отново.

Сега, когато приключихме с настройката на сървъра, просто трябва да настроите вашия клиент Ragnarok да сочи към вашия VPS сървър. Насладете се на играта на вашия нов сървър!


Препратки

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече