قم بإعداد Ragnarok Online Server على Ubuntu 14.04 x64

في هذه المقالة ، سنقوم بإعداد خادم Ragnarok Online على Ubuntu 14.04 x64. يمكنك تسجيل الدخول كجذر أو مستخدم لديه امتيازات مستخدم خارق. من الآمن إعداد هذا كمستخدم غير جذري مع sudo. في هذا البرنامج التعليمي ، سنستخدم ملفات خادم rAthena.

إذا كنت تستخدم Windows ولديك خادم Ubuntu (VPS أو مخصص) ، فستحتاج إلى البرامج التالية.

  • فايلزيلا
  • معجون
  • محرر نص (يُوصى باستخدام Sublime أو Notepad ++)

المتطلبات

  • apache2 - إذا كنت تخطط لاستخدام phpMyAdmin للوصول إلى الخلية عن بعد وإعداد موقع الويب الخاص بك.
  • php5 - للويب و phpMyAdmin.
  • phpmyadmin - الوصول إلى MySQL عن بعد باستخدام متصفح الويب.
  • خادم خادم - قاعدة بياناتنا لخادم اللعبة.
  • عميل الخلية
  • شخص سخيف
  • يصنع
  • مجلس التعاون الخليجي
  • libmysqlclient-dev
  • zlib1g-dev
  • libpcre3-dev - اختياري ، لدعم PCRE.
  • libssl-dev - مطلوب ، للترجمة مع MySQL 5.5.

يمكنك الرجوع إلى هذا الدليل فيما يتعلق بتثبيت Apache و MySQL و PHP.


تركيب الحزم المطلوبة

قم بتشغيل هذه الأوامر عبر SSH.

  • مستخدم الجذر:

    apt-get install php5 phpmyadmin mysql-server mysql-client git make gcc libmysqlclient-dev zlib1g-dev libpcre3-dev
    
  • غير الجذر مع امتيازات 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

سيُطلب منك كلمة مرور الجذر. بعد تسجيل الدخول ، اكتب الأوامر التالية لإنشاء قاعدة البيانات لخادمنا.

إنشاء قاعدة بيانات (اسم قاعدة بيانات راجناروك) ؛ - سنطلق عليه اسم "راجناروك".

    mysql> CREATE DATABASE ragnarok;

ثم قم بإنشاء مستخدم جديد لـ Ragnarok DB وتسجيل DB.

منح كل شيء على راجناروك. * إلى قاعدة البيانات الخاصة بك اسم localhost معرف بواسطة "yourdesiredpassword" - سنقوم بإنشاء مستخدم جديد يسمى admin بكلمة مرور 123456 .

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

يمكنك استبدال localhost بعنوان IP إذا كنت تريد أن يتمكن المستخدم من الوصول إلى خادم MySQL عن بُعد.

إنشاء قاعدة بيانات السجل لسجلات لعبة Ragnarok.

إنشاء قاعدة بيانات (اسم قاعدة بيانات السجل الخاص بك) - سنقوم بتسميتها "سجل".

    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

ابحث عن adde inet addr: xxx.xxx.xxx.xxx part. 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

سيقوم البرنامج النصي للتكوين بإجراء الاختبارات اللازمة وإنشاء ملفات makil لملقمنا.

بعد ذلك ، قم بتجميع شفرة المصدر عن طريق إدخال هذه الأوامر:

    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. استمتع باللعب على خادمك الجديد!


المراجع

اترك تعليقاً

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد