مشكلة في تثبيت Discourse على OVH VPS Ubuntu 22.04

يتم التحقق الذاتي قبل إصدار الشهادة.

إعجاب واحد (1)

ماذا عن iptables؟

راجع هذا المثال من دليل تثبيت Oracle التجريبي: https://meta.discourse.org/t/install-discourse-on-oracle-cloud-free-tier/215749#configure-ubuntus-firewall-iptables-11

يمكنك التحقق من هذه السجلات:

/var/log/nginx/error.log
/var/log/apache2/error.log
/var/log/nginx/access.log
/var/log/apache2/access.log
/var/log/syslog
/var/log/dmesg

وسجل Discourse من docker logs your-container (أو) ملف السجل الخاص بك إذا كنت تستضيف بدون Docker.

هناك العديد من المشكلات المحتملة هنا:

  • مشكلة DNS أو SSL (أكثر شيوعًا).
  • تكوينات خاطئة لجدار الحماية أو التوجيه أو الشبكة.
  • قواعد البيانات، التخزين المؤقت، خدمات Discourse.

بدون سجلات أو مزيد من المعلومات، يكاد يكون من المستحيل تقديم المزيد من النصائح.

الخطوة التالية بسيطة مثل حفظ ملف الشهادة باسم ssl.crt و ssl حسب الفئة.key وسحبه إلى دليل الخادم /var/discourse/shared/standalone/ssl/ssl.crt و /var/discourse/shared/standalone/ssl/ssl.key

لقد رأيت المثال الذي أعطيتني إياه. لقد اتبعت جميع الخطوات.
الفرق الوحيد هو عندما أقوم بتشغيل: netfilter-persistent save
لا أجيب بشيء على عكس المثال حيث يمكنك رؤيته يجيب run-parts: …
image
أحاول مرة أخرى تثبيت discourse من البداية وتشغيل هذين الجدارين الناريين قبل:
iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

أحصل على هذه المشكلة:
المنافذ 80 و 443 متاحة للاستخدام
‘samples/standalone.yml’ → ‘containers/app.yml’
تم العثور على 2 جيجابايت من الذاكرة و 1 نواة معالج مادية
setting db_shared_buffers = 256MB
setting UNICORN_WORKERS = 4
تم تحديث معلمات الذاكرة في containers/app.yml.

اسم المضيف لـ Discourse الخاص بك؟ [discourse.example.com]: mywebsite.fr

التحقق من اسم النطاق الخاص بك . . .
تحذير: يبدو أن المنفذ 443 للجهاز غير قابل للوصول باستخدام اسم المضيف: mywebsite.fr.
تحذير: فشل الاتصال بـ http://mywebsite.fr (المنفذ 80) أيضًا.

يشير هذا إلى أن mywebsite.fr يحل إلى عنوان IP لا يصل إلى هذا
الجهاز الذي تقوم بتثبيت discourse عليه.

أول شيء يجب القيام به هو التأكد من أن mywebsite.fr يحل إلى عنوان IP الخاص بهذا الخادم.
عادة ما تفعل هذا في نفس المكان الذي اشتريت منه النطاق.

إذا كنت متأكدًا من أن عنوان IP يحل بشكل صحيح، فقد تكون هناك مشكلة في جدار الحماية.
قد يساعد البحث على الويب عن “فتح المنافذ خدمة السحابة الخاصة بك” (open ports YOUR CLOUD SERVICE).

تم تصميم هذه الأداة فقط للتثبيتات الأكثر شيوعًا. إذا لم تتمكن من حل
المشكلة المذكورة أعلاه، فستحتاج إلى تحرير containers/app.yml بنفسك ثم كتابة

مرحباً @satonotdead
لقد تحققت، لا أملك هذا المجلد /var/log/nginx /var/log/apache2

إليك تكوين جدار الحماية الخاص بي على مزود خدمة VPS الخاص بي:

لست متأكدًا من فهمي لـ @xiaokong23357.
هل تقصد أنه يمكنني تثبيت تكوين HTTP عن طريق إلغاء التعليق على سطر HTTPS في app.yml وبعد ذلك القيام بهذه الخطوة يدويًا:
حفظ ملف الشهادة باسم ssl.crt وملف المفتاح ssl.key وسحبهما إلى دليل الخادم /var/discourse/shared/standalone/ssl/ssl.crt و /var/discourse/shared/standalone/ssl/ssl.key

مرحباً،

لقد قمت بتعديل ملف app.yml يدوياً. الآن أرى الرسالة التالية على متصفحي:

مرحباً بك في nginx!

إذا رأيت هذه الصفحة، فهذا يعني أن خادم الويب nginx مثبت ويعمل بنجاح. يلزم إجراء المزيد من التكوين.

للحصول على وثائق ودعم عبر الإنترنت، يرجى الرجوع إلى nginx.org.
الدعم التجاري متاح على nginx.com.

شكراً لاستخدامك nginx.

ويبدو أنني حصلت على شهادة SSL، لأن: /var/discourse/shared/standalone/ssl# ls -l
total 8
-rw-r–r-- 1 root root 0 Mar 3 01:00 mydomain.fr.cer
-rw------- 1 root root 3243 Mar 3 01:00 mydomain.fr.key
-rw-r–r-- 1 root root 0 Mar 3 01:01 mydomain.fr_ecc.cer
-rw------- 1 root root 227 Mar 3 01:01 mydomain.fr_ecc.key

ماذا يمكنني أن أفعل الآن من فضلك؟ كيف يمكنني إجراء التكوين المطلوب؟

في الواقع، عندما تقوم بتقديم عنصر القالب “templates/web.ssl.template.yml” في app.yml، يكون موقعك قد بدأ بالفعل في استخدام اتصال https، وقد ذكرت أعلاه طريقة تكوين شهادة SSL.

إعجاب واحد (1)

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

إعجاب واحد (1)

لا بأس لأنك تقوم بتشغيل نسخة واحدة ولكني أسأل فقط لأن هذا شيء يجب التحقق منه.

لقد انتهيت تقريبًا، تحتاج فقط إلى التحقق من خطوة إنشاء شهادات SSL كما قال Snow Love.

أشك في أنك تجاهلت بعض الإرشادات، نصيحة ودية → من الأفضل أن نأخذ وقتنا أثناء قراءة المستندات والإرشادات (لوقتنا الخاص، أعني).

حظا سعيدا :person_surfing:

@xiaokong23357 أنا أستخدم ديسكورس فقط. كيف يمكنني تجاهله؟

مرحباً @satonotdead

عذراً، عن أي إرشادات تتحدث؟
لقد اتبعت هذا المستند: discourse/INSTALL-cloud.md at main · discourse/discourse · GitHub

كيف يمكنني القيام بذلك: أحتاج إلى التحقق من خطوة إنشاء شهادات SSL كما قال Snow Love.

وجدت هذا في /var/discourse/shared/standalone/ssl# ls -l
total 8
-rw-r–r-- 1 root root 0 Mar 3 01:00 mydomain.fr.cer
-rw------- 1 root root 3243 Mar 3 01:00 mydomain.fr.key
-rw-r–r-- 1 root root 0 Mar 3 01:01 mydomain.fr_ecc.cer
-rw------- 1 root root 227 Mar 3 01:01 mydomain.fr_ecc.key

انظر إليك، أنا لا أستخدم nginx للنشر الخاص بي هنا

إذا كنت بحاجة إلى استخدام nginx، فضع “-80:80” في expose

http “عدّل إلى” - “9090:80” # http يضمن إمكانية توجيه nginx إلى discourse

لا أفهم سبب وجود مشكلة nginx هذه. لم أطلب أبدًا استخدام nginx.
هل تقصد أنه يجب عليّ تغيير ملف app.yml إلى:
expose:

  • “9090:80” # http" يضمن إمكانية توجيه nginx إلى discourse
  • “443:443” # https

نعم، لاستخدام nginx، تحتاج إلى تعديل منفذ الوكيل HTTP
إذا كنت لا تستخدم nginx، فقم بتغيير منفذ HTTP 9090 إلى 80

@Titi ما هي نتيجة تشغيل هذا الأمر؟

apt list | grep nginx.

أعتقد من حقيقة أنك حصلت على صفحة فهرس nginx الافتراضية العامة أن خادمك الافتراضي الخاص (VPS) لديه nginx مثبت عليه بالفعل وهو ما يسبب مشكلتك.

يستخدم Discourse أيضًا nginx داخليًا، ولكنك ستحتاج إلى تثبيت معطل بشدة لكي يعرض nginx الداخلي تلك الصفحة.

إعجاب واحد (1)

المهمة الأسهل هي تنفيذ systemctl status nginx. إذا كانت الحالة نشطة (alive) فأنت توقفه systemctl stop nginx وللتأكد من بقائه كذلك ستقوم بتنفيذ systemctl disable nginx.

وبعد كل ذلك، ستتحقق مرة أخرى من أنك لا تزال تعرض 80:80 و 443:443 على app.yml. هذا كل شيء.

إعجاب واحد (1)