انقل مثيل Discourse الخاص بك إلى خادم مختلف

:bookmark: هذا دليل لنقل مثيل Discourse الخاص بك من خادم إلى آخر، بما في ذلك جميع الإعدادات والبيانات. ينطبق هذا الدليل على مثيلات Discourse المستضافة ذاتيًا والتي تستخدم Docker.

:person_raising_hand: مستوى المستخدم المطلوب: مسؤول النظام

:warning: يتضمن هذا الإجراء تغييرات في النطاق ونظام أسماء النطاقات (DNS). تأكد من حصولك على حق الوصول إلى كل من الخادم المصدر والخادم الوجهة.

يرشدك هذا الدليل خلال عملية ترحيل مثيل Discourse الخاص بك من خادم إلى آخر، مما يضمن الحفاظ على بياناتك وإعداداتك وتكوينك.

إخلاء مسؤولية أضافه @pfaffman 2025-09-12T05:00:00Z.

هذه التعليمات لا تعمل بشكل جيد الآن لأنك تستخدم https و Let’s Encrypt، مما يتطلب أن يشير نظام أسماء النطاقات (DNS) إلى الخادم الجديد حتى يتمكن من طلب المفاتيح. ما أوصي به هو اتباع نقل موقع Discourse إلى خادم افتراضي خاص آخر باستخدام rsync (ربما باستخدام --exclude postgres* ثم عمل نسخة احتياطية واستعادة قاعدة البيانات من سطر الأوامر.) هذا مفيد لأنه إذا كنت تعرف كيف، يمكنك تعديل نظام أسماء النطاقات المحلي الخاص بك للإشارة إلى الخادم الجديد حتى تتمكن من اختبار عمله بينما لا يزال باقي الإنترنت يرى الموقع القديم.

الملخص

ستقوم بتنفيذ الخطوات الرئيسية التالية في هذا الدليل:

  1. عمل نسخة احتياطية لمثيل Discourse الحالي الخاص بك (الخادم المصدر).
  2. نقل ملف النسخ الاحتياطي إلى مثيل Discourse الهدف الخاص بك (الخادم الوجهة).
  3. استعادة النسخة الاحتياطية على الخادم الوجهة.
  4. تحديث إعدادات نظام أسماء النطاقات (DNS) (إذا كان ذلك قابلاً للتطبيق).

تعديل إعدادات نظام أسماء النطاقات (DNS) (عند الضرورة)

إذا كنت تستخدم نفس النطاق للخادم الجديد، فقم بتقليل زمن البقاء (TTL) لسجل DNS الخاص بك مقدمًا. يضمن هذا الحد الأدنى من وقت التوقف أثناء انتشار سجلات DNS المحدثة. إذا كنت ستستخدم نطاقًا جديدًا، يمكن تخطي هذه الخطوة.

تسجيل الدخول وإعداد الخادم المصدر

  1. سجل الدخول إلى مثيل Discourse المصدر الخاص بك باستخدام حساب لديه صلاحيات المسؤول.
  2. تأكد من أن كل من الخادم المصدر والخادم الوجهة يستخدمان:
    • نفس إصدار Discourse.
    • نفس مجموعة المكونات الإضافية (Plugins).
  3. قم بترقية إصدار Discourse على كلا الخادمين عن طريق زيارة /admin/upgrade.

:exclamation: تجنب استعادة نسخة احتياطية أحدث على إصدار Discourse أقدم، أو إصدارات PostgreSQL غير المتوافقة، حيث قد يؤدي ذلك إلى حدوث أخطاء.

إنشاء النسخة الاحتياطية وتنزيلها

  1. انتقل إلى /admin/backups على مثيل Discourse المصدر الخاص بك.
  2. انقر فوق الزر Backup لإنشاء نسخة احتياطية:
  3. عند المطالبة، قم بالتأكيد بالنقر فوق Yes.
  4. بمجرد اكتمال النسخ الاحتياطي، انتقل إلى علامة التبويب Backup files، وحدد موقع النسخة الاحتياطية التي تم إنشاؤها حديثًا.
  5. انقر فوق Download لتلقي بريد إلكتروني يحتوي على رابط تنزيل. انقر على الرابط الموجود في البريد الإلكتروني لحفظ ملف النسخ الاحتياطي محليًا.

:warning: قبل المتابعة، راجع ملف app.yml الخاص بك للتأكد من أن أي إعدادات اختيارية، مثل تكوينات شبكة توصيل المحتوى (CDN)، أو المكونات الإضافية المثبتة، أو دعم HTTPS، متسقة بين الخوادم المصدر والوجهة.

استعادة النسخة الاحتياطية على الخادم الوجهة

:bulb: لاستعادة النسخة الاحتياطية عبر سطر الأوامر، راجع التوثيق ذي الصلة.

  1. سجل الدخول كمسؤول إلى مثيل Discourse الوجهة الخاص بك.
  2. انتقل إلى /admin/backups/settings، وقم بتمكين الإعداد allow restore.
  3. انتقل إلى /admin/backups وانقر فوق علامة التبويب Backup files. قم بتحميل ملف النسخ الاحتياطي الذي قمت بتنزيله سابقًا بالنقر فوق الزر Upload:
  4. بعد اكتمال التحميل، انقر فوق قائمة ⋮ (المزيد من الخيارات) بجوار النسخة الاحتياطية التي تم تحميلها، ثم انقر فوق Restore:
  5. قم بالتأكيد بالنقر فوق Yes عند المطالبة.

ستبدأ عملية الاستعادة. قد يستغرق هذا بعض الوقت اعتمادًا على حجم قاعدة البيانات الخاصة بك. بعد اكتمال العملية، سيتم تسجيل خروجك تلقائيًا.

الانتهاء وتسجيل الدخول

  1. سجل الدخول إلى مثيل Discourse الوجهة الخاص بك باستخدام بيانات اعتماد المسؤول الخاصة بك.
  2. إذا تم عمل نسخة احتياطية للموقع باستخدام HTTPS، فتأكد من تمكين HTTPS على الخادم الجديد. إذا لم يتم تكوينه بشكل صحيح، استخدم وحدة تحكم Rails لتعطيل الإعداد “force https” مؤقتًا.
  3. أعد تمكين أي تكوينات اختيارية عن طريق تعديل ملف app.yml وإعادة بناء المثيل الخاص بك. قد يشمل ذلك:
    • تمكين دعم شبكة توصيل المحتوى (CDN).
    • تثبيت مكونات إضافية إضافية.
    • تعيين تكوينات HTTPS.

المشاكل والحلول الشائعة

فشل استعادة ملف النسخ الاحتياطي

  • تحقق من تطابق إصدارات Discourse و PostgreSQL بين الخوادم المصدر والوجهة.

عدم القدرة على تسجيل الدخول بعد الاستعادة (مع تمكين HTTPS)

  • استخدم وحدة تحكم Rails لتعطيل force https مؤقتًا عن طريق تشغيل:
    SiteSetting.force_https = false
    
74 إعجابًا
How to migrate Discourse to new server
How to migrate my Discourse instance to a fresh new install
Move Discourse to a new server without setting up the web UI first?
Transfer from bitnami to normal discourse
Can I restore backups from older Discourse versions?
How to migrate the discourse container to another machine
Update from 2.9.0 beta2 to beta4 failed (my site is down)
Images lost when migrating to self-hosting
How to downgrade a Digital Ocean Virtual
How to backup and restore a whole /var/discourse app folder?
Exporting an AWS instance
Preserving user sessions when migrating between hosts
Postgres failing to update?
Migrate from VPS to a Dedicated
Site migration and plugins
How to migrate Discourse from one server to another with the same DNS name
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Preserve user sessions when migrating to a new host
How do I move the discourse installed server to another server without loss?
Can snapshots be used when upgrading the host OS?
Unknown Primary Key
How to switch Discourse servers?
" undefined method `deprecated?' for nil:NilClass" on rebuild
How to switch Discourse servers?
Some settings aren't saving
Steps involved to downgrade from 2GB to 1GB on DO?
Moving to Another VPS Provider
Getting "permission denied" on new VPS install
How Do I transfer Discourse between servers?
Multi-instance migration failed when adding a new instance
Help Needed Migrating Discourse Forum to New Shanghai Server – db:migrate Error
Plesk server migration
Seeing "welcome to nginx" after backup restore
Issues while migrating from Kunena
Moving to New Server woes
Error: Can't notify admin while restoring backup during a migration to a fresh install
How to migrate from one Digitalocean Droplet to a another Droplet in a different Digitalocean account
How might we better structure #howto?
Trouble with postgre(maybe)
Move Digital Ocean 1-Click install to Standard supported install
Can I retain my forum content if I change its original IP?
Server upgrade from ubuntu 18 to 20
How to move Discourse to a different server when using Digital Ocean's Volumes (Block Storage)
How to migrate Discourse Forum data (Topics, Chat, and Configuration) to another server
How to clone Discourse server to a new server?
Move from standalone container to separate web and data containers
How do I move the discourse installed server to another server without loss?
Migrate a phpBB3 forum to Discourse
Migrate a vBulletin 4 forum to Discourse
Migrate from GetSatisfaction to Discourse
Migrate a NodeBB forum with Redis to Discourse
Migrate a MyBB forum to Discourse