أقوم بذلك لإعداد Discourse: ./discourse-setup لكنني أحصل على الخطأ الظاهر في الصورة.
كيف يمكنني إصلاح هذا الخطأ؟ أنا أستخدم Ubuntu 18.04
يوجد حرف غير قابل للطباعة في اسم المضيف الذي أدخلته:
![]()
حاول مرة أخرى، مع التأكد من إدخاله بشكل نظيف. إذا كنت تنسخ/تلصق، فتأكد من أن المصدر نظيف.
يبدو أنك تشغل بالفعل ووردبريس على عنوان IP هذا.
نعم، تم تثبيت ووردبريس. ألا يمكنني استخدامهما على نفس الخادم؟
من الممكن، لكنه ليس سهلاً. ولا يمكنك استخدام discourse-setup. أنصحك بأن تجرب أولاً على خادم لا يشغّل أي شيء آخر.
اتبعت هذه الخطوات لكن لم أحصل على أي نتائج. وفي الوقت نفسه، أستخدم WEBMIN.
هل لدى أي شخص أفكار أخرى؟
إذا لم تعمل الإرشادات في الموضوع الذي ربطت به سابقًا بالنسبة لك، فإن أسهل شيء هو تشغيل discourse على خادم خاص به.
سيكون من الصعب جدًا جعله يعمل مع webmin.
أعلم أن الأمر سيكون صعبًا، لكنني لا أعتبر نفسي هاويًا. لقد جربت التعليمات التي ربطت بها. هل هناك روابط أخرى يجب أن أقرأها؟
هناك بعض مواضيع howto حول هذه المشكلة.
مرحبًا @Murto
للعلم، أجد أن إعداد Discourse، كخلفية لتطبيق Rails، أسهل بكثير إذا قمت بتكوين Rails لاستخدام منفذ نطاق يونكس بدلاً من منفذ TCP/IP؛ وقمت بإعداد تطبيق Discourse خلف وكيل عكسي.
بهذه الطريقة، تُعرض منافذ TCP/IP فقط عبر الوكيل العكسي، بينما يُعرض تطبيق Discourse (والحاوية) عبر منفذ نطاق يونكس؛ ويمكنك تشغيل أي عدد من نسخ حاوية Discourse تريدها دون القلق بشأن تعارض منافذ TCP/IP. في رأيي، هذه طريقة أنيقة جدًا لتشغيل Discourse.
هناك العديد من أدلة HOWTO والدروس على هذا الموقع لتوجيهك إلى إعداد هذا، إذا علقت و أردت تغيير الاتجاه قليلاً. هناك قالب “socket” في توزيع Discourse يمكنك استخدامه لإعداد “جزء Discourse من التكوين”؛ ثم تقوم فقط بإعداد الوكيل العكسي (لا حصر له من الدروس حول كيفية القيام بذلك) و"تبدأ فورًا!".
آمل أن يكون ذلك مفيدًا.
لم أتمكن بعد من حل المشكلة. هل هناك من يمكنه شرح التفاصيل؟ ![]()
جرب هذا:
netstat -lnptu | grep :443
ثم:
kill -9 PID (استبدل PID بالرقم الناتج عن الأمر أعلاه)
أنصحك بوضع وكيل عكسي (reverse proxy) على خادمك المتصل بالإنترنت، وجعل هذا الوكيل يعيد توجيه الطلبات إلى ووردبريس أو ديسكورش اعتمادًا على اسم النطاق (host).
على سبيل المثال، قم بتشغيل خدمة nginx باستخدام المنافذ 80 و 443 على المضيف، واجعله يحوّل الطلبات الموجهة إلى blog.yourdomain إلى خدمة ووردبريس (إما عبر منفذ داخلي على المضيف إذا كنت تستخدم Apache + ووردبريس، وفي هذه الحالة يمكنك إعادة التوجيه إلى منفذ Apache مثل 8080، أو باستخدام FastCGI).
بعد ذلك، يمكنك تشغيل ديسكورش على نفس الخادم، مع التأكد من استبدال المنافذ في ملف app.yml بمنافذ غير مستخدمة على المضيف، مثل 8081، أو استخدام مأخذ يونكس (Unix socket) كما ذكر @neounix. ثم قم بتوجيه الطلبات الموجهة إلى forum.yourdomain إلى ذلك المنفذ أو إلى المأخذ. لتشغيل ديسكورش، ستحتاج إلى تنفيذ الأمر ./launch rebuild app داخل مجلد ديسكورش (الذي يكون عادةً /var/discourse).
في هذه الحالة، لن تقوم بتشغيل discourse-setup لإنشاء ملف تبديل (swapfile) بحجم 2 جيجابايت (يُستخدم بشكل رئيسي للترقيات التي قد تتطلب ذاكرة أكثر، رغم أنك قد لا تحتاجه إذا كان خادمك يمتلك ذاكرة كبيرة)، ولن تنشئ ملف app.yml. بدلاً من ذلك، يجب عليك القيام بذلك بنفسك. إذا لم تكن تعرف ما يجب وضعه في ملف app.yml، فأوصي بتنفيذ التثبيت الموصى به على خادم منفصل، حتى لو كان ذلك فقط للتعرف أكثر على ديسكورش، ولرؤية ملف app.yml المُنشأ، والذي يمكنك استخدامه على الخادم المشترك (مع تذكر تغيير المنافذ أو إزالتها إذا كنت تستخدم نهج المأخذ).
أنصحك باتباع أحد مواضيع howto المتعلقة بهذا الأمر إذا لم تستطع المضي قدمًا.
هل يمكنك شرح كيفية تنفيذ عملية وكيل العكسي؟ لقد تعلمت ما يجب فعله، لكنني لا أعرف كيف أفعله.
لا أملك مثالاً معي لأنني لا أستخدم وكيلًا أماميًا، رغم أنني أعتقد أنني قمت بتنفيذه منذ فترة. على أي حال، لا يوجد سر؛ يجب أن يكون الأمر كما تفعل مع وكلاء عكسيين آخرين. فيما يلي نظرة عامة على ما يجب فعله باستخدام المنافذ (وليس المنافذ المحلية):
-
تأكد من وجود خدمة ووردبريس تعمل على منفذ غير 80 و443 (مثال: 8443) وتعمل بشكل صحيح. يمكنك محاولة تعريضها للإنترنت أولاً للتأكد من عملها.
-
افعل الشيء نفسه مع ديسكورد، مع تعيينها إلى منافذ مختلفة.
تغيير:
expose:
- "80:80" # http
- "443:443" # https
إلى (على سبيل المثال):
expose:
- "8081:80" # http
- "8444:443" # https
في ملف app.yml الخاص بك (إذا لم يكن لديك، أنصحك بتشغيل ديسكورد على جهاز مستقل باتباع الدليل الرسمي فقط لمعرفة كيفية عمله، ثم إلقاء نظرة على ملف app.yml المُنشأ في /var/discourse/containers/). إليك عينة من ملف app.yml: discourse_docker/samples/standalone.yml at master · discourse/discourse_docker · GitHub
- قم بتثبيت nginx وأضف تعليمات الوكيل في ملف التكوين الخاص به. يجب أن تكون مشابهة للمقطع التالي:
upstream blog {
server localhost:8080;
}
server {
server_name blog.barinaklar.com;
server_tokens off;
listen 80;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://blog.barinaklar.com$request_uri;
}
}
server {
server_name blog.barinaklar.com;
server_tokens off;
listen 443 ssl;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
proxy_pass http://blog;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
upstream forum {
server localhost:8081;
}
server {
server_name forum.barinaklar.com;
server_tokens off;
listen 80;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://forum.barinaklar.com$request_uri;
}
}
server {
server_name forum.barinaklar.com;
server_tokens off;
listen 443 ssl;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
proxy_pass http://forum;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
يفترض هذا أن ووردبريس تعمل على المنفذ 8080 وديسكورد تعمل على المنفذ 8081. تأكد من وضع جدار حماية لحظر الوصول إلى هذه المنافذ (غالبًا ما تقوم مزودو الخدمات السحابية بحظر جميع المنافذ افتراضيًا، ما عدا 22، لذا قد لا يكون ذلك ضروريًا).
في هذه الحالة، يجب أن تكون أنت المسؤول عن إنشاء شهادات SSL/TLS (يمكنك القيام بذلك باستخدام certbot الذي يعمل دوريًا في مهمة cron، لذا فقد أضفت بالفعل المسارات /.well-known/acme-challenge/ في تكوين nginx).
كما ذكرت أعلاه، هذه مجرد نظرة عامة وقد يكون هناك شيء فاتني. يجب أن تولي اهتمامًا خاصًا لعنوان URL الأساسي بسبب تغيير المنافذ (للتأكد من أنه لا يحاول إعادة توجيه المستخدم إلى https://yourdomain:8081 بدلاً من https://yourdomain، وإجراء التعديلات اللازمة لجعله يعمل إذا لزم الأمر).
قد لا يكون هذا ضروريًا إذا كانت ووردبريس تعمل داخل حاوية على المنفذ 80 أو 443 داخل الحاوية. ومع ديسكورد يجب أن يكون الأمر على ما يرام أيضًا. المشكلة التي قد تنشأ تتعلق بـ https، فقد يعيد التوجيه إلى http لأنه يستخدم منفذ http في الوكيل، لذا قد تحتاج إلى التحقق من حدوث ذلك وإصلاحه في هذه الحالة.
شكرًا لك على مساعدتك. سأقدم الطلب وأبلغ المعاملات.



