نحن ننتقل إلى خادم DigitalOcean جديد وحاولنا استخدام صورة من السوق. عند تشغيل سكريبت الإعداد، يفشل في مرحلة مبكرة لأن اسم النطاق الخاص بنا لا يزال يشير إلى الخادم الحالي في بيئة الإنتاج.
أحتاج إلى تشغيل هذه التثبيت الجديد حتى أتمكن من استعادة نسخة احتياطية منه، ثم تحديث سجلات DNS بعد ذلك.
الخطأ هو:
Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname: x
WARNING: Connection to x (port 80) also fails.
This suggests that x resolves to some IP address that does not reach this
machine where you are installing discourse.
The first thing to do is confirm that x resolves to the IP address of this server.
You usually do this at the same place you purchased the domain.
If you are sure that the IP address resolves correctly, it could be a firewall issue.
A web search for "open ports YOUR CLOUD SERVICE" might help.
اسم النطاق يستجيب بالفعل على المنطقتين 80 و 443، لذا يبدو أن رسالة الخطأ هذه غير صحيحة هي الأخرى.
نعم، نقوم بإدارة ذلك. لم أفحص الكود، بل افترضت أن الفحص يأتي من صورة السوق.
./discourse-setup مُصمَّم كطريقة بسيطة لإعداد Discourse، مما يتجنب الحاجة إلى تحرير ملف نصي يدويًا عند تشغيل موقع Discourse جديد. حالتك ليست “نمطية” مثل تلك التي يتعامل معها سكريبت الإعداد.
في حالتك، أفضل خيار على الأرجح هو نسخ ملف containers/app.yml من خادمك الحالي إلى الخادم الجديد. كبديل، يمكنك تحرير الملف يدويًا بنفسك كما هو مقترح في السطور 75/76:
لكن الآن لا يمكنني استيراد النسخة الاحتياطية لأنني لا أستطيع تفعيل حساب المسؤول المؤقت:
(6) تم رفض تحميل السكربت ‘’ لأنه ينتهك التوجيه التالي لسياسة أمان المحتوى: “script-src ”. لاحظ أن ‘script-src-elem’ لم يتم تعيينه صراحةً، لذا تم استخدام ‘script-src’ كبديل.
هل توجد طريقة مباشرة لاستعادة النسخة الاحتياطية أو تعطيل سياسة أمان المحتوى حتى ذلك الحين؟
cd /var/discourse
sudo ./launcher enter app
rails c
SiteSetting.content_security_policy = false
exit
exit
لاحظ أنني أنصح بمحاولة استعادة النسخة الاحتياطية من سطر الأوامر أولاً؛ فهي تحل المشكلة الفعلية التي تواجهها (استعادة النسخة الاحتياطية) بدلاً من العائق الحالي (سياسة أمان المحتوى).