يشرح هذا الدليل كيفية استعادة نسخة احتياطية من Discourse من سطر الأوامر دون استخدام واجهة مستخدم الويب الخاصة بـ Discourse.
مستوى المستخدم المطلوب: مسؤول
يتطلب الوصول إلى وحدة التحكم
إليك كيفية استعادة نسخة احتياطية من Discourse من سطر الأوامر، دون تشغيل واجهة مستخدم الويب الخاصة بـ Discourse على الإطلاق. هذا مفيد عندما تقوم بنقل الخوادم.
المتطلبات الأساسية
قبل البدء، تأكد من إكمال الخطوات التالية:
- قم بتنزيل أحدث ملف نسخة احتياطية من مثيل Discourse المصدر.
- قم بتهيئة مثيل Discourse الوجهة عن طريق تشغيل
./discourse-setupأو نسخapp.ymlالحالي لديك. - تأكد من أن مثيل Discourse الوجهة هو أحدث إصدار. قم بتحديثه إذا لزم الأمر.
نقل النسخة الاحتياطية
- قم بتسجيل الدخول عبر SSH إلى الخادم الوجهة، أو قم بإنشاء مجلد النسخ الاحتياطي هناك بأي طريقة أخرى:
mkdir -p /var/discourse/shared/standalone/backups/default
- قم بتحميل ملف النسخة الاحتياطية الخاص بك إلى الخادم الوجهة.
scp /path/to/backup/backup.tar.gz root@192.168.1.1:/var/discourse/shared/standalone/backups/default
تأكد من استبدال المسارات وأسماء الملفات وأسماء الخوادم بتلك التي تستخدمها - ولكنك تريد أن ينتهي الأمر بملف النسخة الاحتياطية في:
/var/discourse/shared/standalone/backups/default
يمكنك أيضًا تحميل وتنزيل ملف النسخة الاحتياطية الخاص بـ Discourse الخاص بك من مواقع التخزين على الويب الشائعة مثل Google Drive أو Dropbox أو OneDrive، وما إلى ذلك - ستحتاج إلى البحث عن تعليمات سطر الأوامر المحددة بناءً على مزود التخزين على الويب المفضل لديك.
لا تقم بتغيير اسم ملف النسخة الاحتياطية! يعامل Discourse اسم ملف النسخة الاحتياطية كبيانات وصفية، لذا إذا قمت بتغيير اسم الملف، فلن يعمل الاستعادة. التزم باسم الملف الأصلي.
استبدل /path/to/backup/discourse-xyz.tar.gz بالمسار المحلي لملف النسخة الاحتياطية الخاص بك، واستبدل \u003cserver_ip_address\u003e بعنوان IP الخاص بالخادم الوجهة.
إذا تم استخدام Nginx كـ وكيل عكسي، فتأكد من أن الحاوية يمكنها قراءة جميع المسارات إلى النسخة الاحتياطية ويمكن لـ Nginx قراءة ملف
.sock.
استعادة النسخة الاحتياطية
- قم بالوصول إلى الخادم الوجهة وانتقل إلى مجلد Discourse:
cd /var/discourse
- ادخل إلى حاوية تطبيق Docker الخاصة بـ Discourse:
./launcher enter app
- تمكين وظيفة الاستعادة:
discourse enable_restore
- استعادة ملف النسخة الاحتياطية:
discourse restore sitename-2019-02-03-042252-v20190130013015.tar.gz
نصيحة: إذا قمت بتشغيل
discourse restoreبدون اسم ملف، فسوف يسرد جميع ملفات النسخ الاحتياطي المتاحة.
إذا تم تكوين إعداد
backup_locationالخاص بموقعك لاستخدام S3، ولكنك قمت بتحميل ملف النسخة الاحتياطية يدويًا إلى نظام الملفات المحلي، فيجب عليك تحديد--location local:discourse restore --location local sitename-2019-02-03-042252-v20190130013015.tar.gzوبالمثل، استخدم
--location s3للاستعادة مباشرة من نسخة احتياطية على S3 دون تنزيلها أولاً.
- اخرج من حاوية تطبيق Docker الخاصة بـ Discourse:
exit
إعادة البناء
بعد استعادة النسخة الاحتياطية، قد تختار إعادة بناء المثيل الوجهة لضمان تطبيق جميع الإعدادات والتكوينات بشكل صحيح.
الآن هو الوقت المناسب لتحديث
/var/discourse/containers/app.ymlباستخدام HTTPS كامل أو إضافات إضافية أو تكوين CDN. قارن تكوينapp.ymlلكلا المثيلين للتأكد!
cd /var/discourse
./launcher rebuild app
تمكين البريد الإلكتروني
عند استعادة نسخة احتياطية، يتم تعطيل البريد الصادر للمستخدمين غير الموظفين. أنت لا تريد أن يبدأ خادم الاختبار الخاص بك، أو الخادم الجديد، أو الخادم الذي استعدت للتو نسخة احتياطية منه لسبب آخر، في إرسال بريد إلكتروني إلى المستخدمين! قم بتغيير إعداد الموقع disable_emails إلى “no” لإعادة تمكين البريد الإلكتروني.
هذا كل شيء. تم استعادة خادم Discourse الخاص بك بنجاح.