كل التوثيق

الترحيل من WHMCS

انقل عملاءك ومنتجاتك وخدماتك وفواتيرك ومدفوعاتك من نظام WHMCS قائم إلى Hostinvo.

صفحة الإعدادات ← الاستيراد ← الترحيل من WHMCS تنسخ بيانات WHMCS إلى مساحة عملك في Hostinvo. يتصل Hostinvo بقاعدة بيانات MySQL الخاصة بـ WHMCS بالبيانات التي تدخلها، ويقرأ البيانات، وينشئ نفس العملاء والمنتجات والخدمات هنا. لا يتغير أي شيء في WHMCS، ولا يُنشأ أي شيء على خوادمك.

قاعدة بيانات WHMCS، اختبار الاتصال، بدء الاستيراد، البيانات في Hostinvo
الاستيراد باختصار: اختبر الاتصال ثم ابدأ الاستيراد، ويعمل في الخلفية.

ما الذي يُستورد

في WHMCSفي Hostinvo
العملاءالاسم والشركة والبريد والهاتف والدولة وعنوان الفوترة. ويحصل كل عميل على دخول لمنطقة العملاء بدون كلمة مرور، فيعيّنها بنفسه من «نسيت كلمة المرور».
مجموعات المنتجاتتُنشأ كمجموعات منتجات.
المنتجاتتُنشأ بأسعارها. المنتج الذي لا سعر له يحصل على سعر افتراضي يمكنك تعديله.
الخدمات (الاستضافة)تُنشأ بحالتها ودورة فوترتها وتاريخ استحقاقها القادم ونطاقها، فتستمر التجديدات. النشطة والموقوفة تبقى كما هي؛ والمنتهية والملغاة والاحتيالية تصبح منتهية؛ وأي حالة أخرى تصبح بالانتظار.
الفواتير وبنودهاتُنشأ بمجاميعها وحالة دفعها، إن وُجدت جداولها.
المعاملاتتُنشأ كمدفوعات ومعاملات، إن وُجد جدولها.
تنبيهلا يُستورد: تذاكر الدعم، وتسجيلات النطاقات (tbldomains)، وحسابات الموظفين والمدراء، وإعدادات بوابات الدفع، وقوالب البريد، وكلمات مرور العملاء.

قبل أن تبدأ

  • بيانات قاعدة بيانات WHMCS. تجدها في ملف configuration.php داخل مجلد WHMCS: ‎$db_host و‎$db_port و‎$db_name و‎$db_username و‎$db_password.
  • مستخدم MySQL يستطيع قراءة قاعدة بيانات WHMCS. الأفضل مستخدم للقراءة فقط (المثال أدناه).
  • يجب أن يصل خادم Hostinvo إلى خادم MySQL الخاص بـ WHMCS. إذا كان WHMCS على خادم آخر فاسمح باتصالات MySQL البعيدة من عنوان IP لخادم Hostinvo.
  • على خادم Hostinvo الخاص بك يجب أن يعمل عامل الطوابير (queue worker)، لأن الاستيراد يعمل في الخلفية.

مثال: مستخدم MySQL للقراءة فقط (يُنفَّذ على خادم MySQL الخاص بـ WHMCS)

CREATE USER 'whmcs_reader'@'203.0.113.10' IDENTIFIED BY 'a-long-random-password';
GRANT SELECT ON whmcs.* TO 'whmcs_reader'@'203.0.113.10';
FLUSH PRIVILEGES;

استبدل 203.0.113.10 بعنوان IP لخادم Hostinvo، وwhmcs باسم قاعدة بيانات WHMCS. يمكنك حذف هذا المستخدم بعد انتهاء الاستيراد.

الخطوات

صفحة الترحيل من WHMCS مع حقول مرقّمة
الأرقام تطابق الخطوات التالية.
  1. 1

    تعبئة الحقول من configuration.php (اختياري)

    اختر ملف configuration.php الخاص بـ WHMCS. يُقرأ الملف داخل متصفحك لتعبئة الحقول فقط، ولا يُرفع ولا يُحفظ. إذا كان في الملف localhost فسيُغيَّر الخادم إلى host.docker.internal، وهذا صحيح فقط إذا كان WHMCS على نفس جهاز Hostinvo؛ وإلا فضع عنوان خادم WHMCS (انظر الأمثلة).

  2. 2

    خادم قاعدة البيانات والمنفذ

    عنوان خادم MySQL الخاص بـ WHMCS، مثل whmcs.example.com أو 198.51.100.20. المنفذ غالباً 3306.

  3. 3

    اسم قاعدة البيانات

    اسم قاعدة بيانات WHMCS (‎$db_name)، مثل example_whmcs.

  4. 4

    اسم المستخدم وكلمة المرور

    مستخدم MySQL الذي يستطيع قراءة القاعدة. كلمة المرور تُرسل لمهمة الاستيراد فقط ولا تُحفظ.

  5. 5

    اختبار الاتصال

    يتحقق من أن Hostinvo يستطيع الاتصال وأن جداول WHMCS موجودة (tblclients وtblproductgroups وtblproducts وtblhosting). يجب أن تظهر رسالة نجاح الاتصال ووجود الجداول المطلوبة.

  6. 6

    بدء الاستيراد

    يضع الاستيراد في قائمة الانتظار. يبقى الزر على «الاستيراد قيد التنفيذ» حتى ينتهي.

  7. 7

    متابعة حالة الاستيراد

    مربع الحالة يتحدث تلقائياً كل بضع ثوانٍ: بالانتظار، ثم قيد التنفيذ، ثم مكتمل، أو فشل مع السبب.

مثال 1: WHMCS على استضافة cPanel

ملف configuration.php على خادم WHMCS

$db_host = 'localhost';
$db_port = '';
$db_username = 'example_whmcs';
$db_password = '********';
$db_name = 'example_whmcs';
  • كلمة localhost هنا تعني خادم WHMCS نفسه، لذلك أدخل في Hostinvo عنوان الخادم بدلاً منها، مثل: خادم قاعدة البيانات = server1.example-host.com، والمنفذ = 3306.
  • من cPanel ← Remote MySQL أضف عنوان IP لخادم Hostinvo، وإلا سيُرفض الاتصال.
  • اسم قاعدة البيانات = example_whmcs، واسم المستخدم = example_whmcs (أو مستخدم القراءة فقط)، وكلمة المرور = كلمة مرور قاعدة البيانات.
  • اضغط «اختبار الاتصال» ثم «بدء الاستيراد».

مثال 2: WHMCS وHostinvo على نفس الجهاز

إذا كان Hostinvo يعمل داخل Docker وقاعدة MySQL الخاصة بـ WHMCS على نفس الجهاز، فاستخدم: خادم قاعدة البيانات = host.docker.internal والمنفذ = 3306. وإذا كانت MySQL الخاصة بـ WHMCS في حاوية Docker أخرى، فاستخدم اسم خدمة تلك الحاوية كعنوان للخادم.

مثال 3: قاعدة MySQL غير مفتوحة على الإنترنت

إذا كانت استضافتك لا تسمح باتصالات MySQL البعيدة، افتح نفق SSH من خادم Hostinvo إلى خادم WHMCS ووجّه Hostinvo إلى النفق. اترك النفق مفتوحاً حتى يكتمل الاستيراد.

على خادم Hostinvo

ssh -N -L 0.0.0.0:3307:127.0.0.1:3306 user@whmcs-server.example.com

ثم استخدم: خادم قاعدة البيانات = host.docker.internal (أو عنوان IP لخادم Hostinvo) والمنفذ = 3307.

حالة الاستيراد

الحالةالمعنى
بالانتظارفي قائمة الانتظار بانتظار عامل الطوابير. إذا بقي على هذه الحالة فعامل الطوابير لا يعمل.
قيد التنفيذيقرأ من WHMCS ويكتب في Hostinvo. القواعد الكبيرة قد تأخذ بضع دقائق.
مكتملاستُورد كل شيء.
فشللم يُستورد شيء: الاستيراد خطوة واحدة، فالفشل لا يترك بيانات مستوردة جزئياً. يظهر السبب؛ عالجه وابدأ من جديد.

بعد الاستيراد

  • أخبر عملاءك بالدخول عبر «نسيت كلمة المرور»، لأن كلمات مرورهم في WHMCS لا يمكن نقلها.
  • راجع المنتجات: الأسعار ودورات الفوترة، خاصة المنتجات التي حصلت على سعر افتراضي.
  • الخدمات تُستورد كسجلات فقط، غير مربوطة بخوادمك بعد. أضف خادم Plesk من صفحة الخوادم أولاً، ثم اربطها بإحدى الطريقتين أدناه.
  • تشغيل الاستيراد مرة أخرى آمن: العملاء يُطابَقون بالبريد، والسجلات برقمها في WHMCS، فتُحدَّث ولا تتكرر.

ربط الخدمات المستوردة بخادم Plesk

تُطابَق كل خدمة مستوردة مع اشتراك في Plesk بنطاقها أو باسم المستخدم، وتُربط بذلك الخادم. لا يُنشأ ولا يتغير أي حساب في Plesk. اختر أياً من الطريقتين؛ كلتاهما تؤديان نفس العمل.

  1. 1

    الخيار الأول: الزر

    افتح الخوادم ← خادم Plesk الخاص بك. في قسم «ربط الخدمات المستوردة من WHMCS» اضغط «ربط الخدمات الآن». تظهر النتيجة بعدد الخدمات التي رُبطت والتي لم تُعثر على هذا الخادم.

  2. 2

    الخيار الثاني: الأمر

    على خادم Hostinvo داخل مجلد Hostinvo. صفحة الخادم تعرض هذا الأمر برقم الخادم جاهزاً للنسخ؛ و‎--all يربط كل خوادم Plesk مرة واحدة.

    docker compose -f docker-compose.prod.yml exec app php artisan plesk:sync-services --server=SERVER_ID
    docker compose -f docker-compose.prod.yml exec app php artisan plesk:sync-services --all
تنبيهلا تستخدم «استيراد اشتراكات Plesk الحالية» للحسابات التي استوردتها من WHMCS، لأنه سيضيف خدمة ثانية لكل منها.

حل المشكلات

الرسالةما العمل
تعذر الاتصال بخادم MySQL الخاص بـ WHMCSالعنوان خاطئ أو هو localhost. استخدم عنوان خادم WHMCS، أو host.docker.internal إذا كانا على نفس الجهاز.
Access denied for userاسم المستخدم أو كلمة المرور خاطئة، أو المستخدم غير مسموح له من IP خادم Hostinvo. راجع صلاحيات GRANT وcPanel ← Remote MySQL.
انتهت مهلة الاتصال / الخادم غير قابل للوصولجدار ناري يمنع المنفذ 3306. افتحه لعنوان IP خادم Hostinvo، أو استخدم نفق SSH (المثال 3).
لم تُعثر على جداول WHMCS المطلوبةاسم قاعدة البيانات خاطئ، أو الجداول لا تستخدم البادئة القياسية tbl.
الحالة تبقى «بالانتظار»عامل الطوابير لا يعمل على خادم Hostinvo. شغّله وسيكمل الاستيراد.
نصيحةكلمة مرور قاعدة البيانات تُرسل مشفّرة لمهمة الاستيراد ولا تُحفظ أبداً. استخدم مستخدم MySQL للقراءة فقط واحذفه عند الانتهاء.