مرحباً بالجميع! لقد حاولت عدة مرات حتى الآن تشغيل Discourse على Google Cloud. حالياً في المحاولة الثالثة لإنشاء مثيل VM (Ubuntu 18.04 minimal)، وتثبيت Discourse يدوياً عبر الطرفية. وفقاً للدليل هنا، يبدو كل شيء على ما يرام - ولكن بعد الانتهاء من تشغيل ./discourse-setup، لا يمكنني الوصول إلى الموقع.
لقد جربت أيضاً تثبيت Discourse باستخدام حلول النشر بـ “نقرة واحدة” في Google Marketplace (الحل الخاص بـ Google وحل Bitnami). عند القيام بذلك، تمكنت من الوصول إلى صفحة هبوط Discourse.
أظن أن هناك مشكلة تتعلق بـ Google والمنافذ (وهذه المشكلة تم تجنبها مع التثبيتات الجاهزة) - لكنني لا أعرف الكثير عن كل هذا لأقوم بتشخيص المشكلة بنفسي. هل لديكم أي أفكار؟
هل يمكن أن يكون هذا مرتبطًا بجدار الحماية؟
وفقًا لفهمي، يتطلب Google Cloud منا تحديد مربعي اختيار للسماح بالوصول العام إلى آلة افتراضية. يمكن تكوين ذلك لاحقًا إذا لزم الأمر
أنا الآن أعتقد أنني ربما لا أشغل خادم ويب؟ هل أحتاج إلى تثبيت Nginx قبل أو بعد تثبيت Discourse أم شيء آخر؟ أتبع سلسلة أفكار من هذا الموضوع، وهو مطابق لمشكلتي.
حسنًا، بدأت أعتقد أن هذه هي المشكلة. بدا أن Nginx مُثبّت، لكنه لم يكن يعمل. قتلت عمليات PIDs 14311 و 14295 الخاصة بـ docker-proxy، ثم شغّلت Nginx. الآن أصبح Nginx مرتبطًا بالمنفذ 80، وعندما أزور موقعي، أرحّب بي Nginx!
الآن يجب أن أعود لتشغيل Docker/Discourse مرة أخرى.
وجدت أيضًا هذا الدليل حول تثبيت Discourse/Nginx على إصدار أقدم من Ubuntu. يبدو أنهم غيّروا منفذ Docker، من المنفذ 80 لسبب ما. ربما هناك تعارض هنا.
تمكّنت بطريقة ما من تشغيل Nginx على المنفذ 80، بينما يستمع Docker-proxy إلى المنفذ 8060 لبروتوكول http والمنفذ 9443 لبروتوكول https (كما اقترح دليل آخر). ولكن بعد تحقيق ذلك، أجد نفسي ضائعًا مرة أخرى. يبدو أن Discourse منتدى رائع، لكنه يبدو مستحيل التثبيت على Google Cloud بالنسبة للمبتدئين مثلي.
لا يلزمك تشغيل خادم ويب مخصص إلا إذا كنت تخطط لاستخدام الخادم لأكثر من استضافة Discourse، حيث يأتي Discourse مع خادم Nginx مدمجًا بالفعل. هل يمكنك تأكيد أن الخادم الخاص بك مُعيَّن له عنوان IP عام، وأن التكوين يسمح بالاتصالات الخارجية على المنافذ 22 و80 و443؟
نعم. تحتوي مثيلتي الافتراضية (VM) على Google على عنوان IP عام وتسمح بحركة المرور على المنافذ 22 و80 و443.
أعتقد أن هذا تم إثباته أيضًا عندما قتلت عمليات docker-proxy (على المنافذ 80 و443)، ثم شغلت Nginx (على المنفذ 80)، وتمكنت من الوصول إلى صفحة هبوط Nginx على موقعي.
لقد قمت بتثبيته بالفعل 3 مرات، وتبين أن المنافذ غير مرتبطة في كل مرة. لقد أجريت ثلاث عمليات تثبيت ناجحة، لكنني لم أستطع أبدًا الوصول إلى المنتدى. لذا، أنا أفكر في استخدام إصدار Google (الذي يعمل لكنه لا يسمح لي بتعيين SMTP)، ثم إيجاد طريقة لتعيين SMTP من إصدار Google.
بموجب “الخطوة 11” في هذا الرابط، تمكنت من [إنشاء ملف discourse.conf (لأنه غير موجود) وتعديله]. بعد القيام بذلك، بدا أنني أستطيع إعادة تشغيل “خدمة discourse” واختبار إعدادات البريد الإلكتروني؟
هل يعني ذلك أنني لست بحاجة إلى إعادة تثبيت Discourse، صحيح؟
ومع ذلك، عند النظر في الخدمات قيد التشغيل، لا أرى أي شيء يُسمى “discourse”، رغم أن منتدى Discourse الخاص بي يعمل بوضوح ويتوفر الآن.
عذرًا، ليس لدي أي فكرة عن كيفية إعداد صورة Google Cloud. لقد قمت بتنفيذ أكثر من اثني عشر تثبيتًا (بما في ذلك واحد في الأسبوع الماضي)، وأنا واثق جدًا من أن المشكلة على الأرجح تتعلق بطريقة تكوين جهازك الافتراضي (VM).
هذه هي خطوات التحضير التي أقوم بها قبل اتباع دليل التثبيت الرسمي:
إعداد محرك الحوسبة للسماح بحركة مرور HTTP و HTTPS.
إعداد DNS والتأكد منه.
التأكد من الاتصال بـ VM الخاص بي عبر SSH.
يمكنني تأكيد أن العملية تعمل.
ملاحظة: عادةً ما أستخدم إصدار minimal من Ubuntu على Gcloud لتثبيت Discourse.
هـ. غريب جداً. لكن شكراً لتأكيدك أن هذا ممكن فعلياً على Google Cloud. أعتقد أيضاً أن تثبيت Discourse يسير بشكل جيد، وأن المشكلة تكمن في الـ VM/المنافذ. سأحاول مرة رابعة غداً، رغم أنني قمت بخطوات التحضير هذه في كل مرة. شكراً لك، بهانو.
سأقوم بالتحقق من ذلك الآن. لقد أزلت فقط النسخ القديمة والمشروع، وبدأت مشروعًا ونسخة جديدة على Google Cloud. سأحاول الآن تثبيت Discourse وسأبلغك بالمنافذ التي تم فحصها!
أعدت نفس العملية مرة أخرى، لكنني كنت أكثر حذرًا في كل خطوة هذه المرة.
حذفت مثيلتي ومشروعي على Google Cloud، وابدأت بمشروع جديد.
ثم أنشأت مشروعًا جديدًا ومثيلًا جديدًا. نظام تشغيل Ubuntu 18.04 LTS المصغر. تم تمكين HTTP/HTTPS. قبل اتباع الدليل الرسمي المذكور أعلاه، قمت بما قاله بهانو واختبرت الاتصال. اتبعت “دليل الترحيب” الخاص بـ Google Cloud والذي يتضمن أيضًا تجربة سكريبت خادم Python على المنفذ 80 وما إلى ذلك.
خلال عملية “الدليل الرسمي”، كنت حذرًا جدًا في إعداد SMTP. لسبب ما، قررت عدم استخدام Mailgun، بل انتهيت باستخدام Sendinblue. والذي يعمل بشكل ممتاز!
لا أعرف حقًا ما هو الفرق هذه المرة، لكنه يعمل الآن. شكرًا لك على المناقشة معي في الموضوع!
لا أعرف لماذا لا يمكنني تعديل منشوري السابق، لكن قد يقوم المشرف بدمجهما.
أردت فقط أن أضيف أنني أعتقد أن مشكلتي والحل ربما كانا ناتجين عن أنني كنت متحمسًا أكثر من اللازم.
بسبب تثبيت إضافة معيبة، اضطرتُ مؤخرًا إلى حذف وإعادة تثبيت مثيل Discourse الخاص بي. عند بدء تشغيل هذا المثيل الجديد، حصلتُ على عنوان IP جديد. لذا ذهبتُ إلى خدمة الاستضافة الخاصة بي، وقمتُ بتحديث مؤشر A/نظام أسماء النطاقات (DNS)، الذي يوجه النطاق الفرعي discourse.mydomain.com إلى عنوان IP لمثيل Google Cloud الخاص بي، ثم عدتُ إلى واجهة SSH الخاصة بـ Google Cloud لتشغيل الإعداد.
عند تشغيل ./discourse-setup لأول مرة، يتحقق الإعداد من القدرة على الربط بالمنافذ 80 و443. ولكن لسبب ما، رفض الربط بالمنافذ 80 و443 مرة أخرى. بحثتُ في نظام أسماء النطاقات عبر who.is، فتم حل النطاق الفرعي بنجاح إلى عنوان IP وغيره، ومع ذلك لم ينجح الأمر. جربتُ تشغيل ./discourse-setup ثلاث مرات دون جدوى. تحققتُ باستخدام netstat -ltnpu، ولم أجد شيئًا خاصًا. انتظرتُ خمس دقائق إضافية، ثم شغّلته رابع مرة، وعمل الآن.