تم التثبيت على AWS EC2 باستخدام برنامج التشغيل الرسمي، وتم تهيئته، وتم تشغيله عبر Docker، لكنه يفشل في العمل على المنفذ 80. يبدو الأمر كما يلي:
[*******]# telnet localhost 80
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
Connection closed by foreign host.
متصل بدocker داخل EC2، وفي سجلات nginx أجد أخطاء كهذه كل ثانية:
cannot load certificate “/shared/ssl/ec2-x-x-x-x.xx-xx.compute.amazonaws.com.cer”: PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name: no start line: Expecting: TRUSTED CERTIFICATE)
سجلات Redis و Postgres داخل الحاوية جيدة. سجلات التطبيق في /var/www/discourse/log لا تُظهر أي شيء خاص (على الرغم من أنها قصيرة جدًا).
تشبه الحالة جزئيًا نظام Windows 10 Ubuntu Linux (WSL) مع وجود Docker مثبت على Windows (بما أن Docker الأصلي لا يعمل على WSL). تمت التثبيت بسلاسة، وتم تهيئة الصورة، وتحديث قاعدة البيانات، وظهور العديد من العناصر الأخرى على الشاشة. أخيرًا، تم تشغيل Docker (أراه في أمر docker ps، وتمت ربط المنافذ بشكل صحيح)، ولكن عند محاولة الوصول إليه عبر localhost (وهو ما قمت بتكوينه)، أحصل على شاشة فارغة لأن الخادم لا يرسل أي استجابة. كما أن الاتصال عبر Telnet إلى منفذ 80 في localhost لا ينجح على الإطلاق (على عكس Linux على AWS حيث يحدث شيء ما لكنه يُرفض).
لقد قمت بإعداد الشهادة بشكل غير صحيح. أوصي باستخدام Let’s Encrypt بدلاً من ذلك. أوقف الحاوية، احذف ملف app.yml، ثم شغّل discourse-setup مرة أخرى وقم بتوفير عنوان بريد إلكتروني لـ Let’s Encrypt.