يتم التحقق الذاتي قبل إصدار الشهادة.
ماذا عن 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: …

أحاول مرة أخرى تثبيت 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
لست متأكدًا من فهمي لـ @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.
أيضًا، يُستخدم nginx بشكل عام عند تشغيل مواقع ويب متعددة على خادمك، ويمكنك اختيار تجاهله إذا كنت تشغل discourse فقط
لا بأس لأنك تقوم بتشغيل نسخة واحدة ولكني أسأل فقط لأن هذا شيء يجب التحقق منه.
لقد انتهيت تقريبًا، تحتاج فقط إلى التحقق من خطوة إنشاء شهادات SSL كما قال Snow Love.
أشك في أنك تجاهلت بعض الإرشادات، نصيحة ودية → من الأفضل أن نأخذ وقتنا أثناء قراءة المستندات والإرشادات (لوقتنا الخاص، أعني).
حظا سعيدا ![]()
@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 الداخلي تلك الصفحة.
المهمة الأسهل هي تنفيذ systemctl status nginx. إذا كانت الحالة نشطة (alive) فأنت توقفه systemctl stop nginx وللتأكد من بقائه كذلك ستقوم بتنفيذ systemctl disable nginx.
وبعد كل ذلك، ستتحقق مرة أخرى من أنك لا تزال تعرض 80:80 و 443:443 على app.yml. هذا كل شيء.
