كيف تحدد منفذًا مختلفًا (غير 80) أثناء التثبيت؟

I am installing this on the production server, which I already have a website running on port 80.

How do I specify a different port to install Discourse?

Currently it won’t let me install and says:

# ./discourse-setup
Port 80 appears to already be in use.

If you are trying to run Discourse simultaneously with another web
server like Apache or nginx, you will need to bind to a different port

See https://meta.discourse.org/t/17247

However the above link says “assumes you already have Discourse working”, but I don’t.

Yes, that does appear to be something of a chicken-and-egg problem… what the discourse-setup script does, more-or-less, is just copy samples/standalone.yml to containers/app.yml and edit a bunch of stuff in response to your answers to a bunch of questions. You can do the same thing yourself – copy the file, edit to suit. It’s how all installs used to be done before @codinghorror decided he wanted to show he could write bash scripts with the best of 'em. :grinning:

Just bear in mind that running on a different port that 80 and 443 isn’t really supported, and there will be some things broken.

If you really need to reuse the server you can set nginx in front to proxy request between discourse and he other site. There’s an howto for that.

Thank you for the answers!

what is it that actually isn’t working when using different ports? did it some months ago for a little test install and can’t see any issues ..

now would have to do a more serious installation and am not sure if i should bother doing the nginx-proxy-thing or just change the ports as i did with the other..

tia,
markus.

It breaks some parts, and since isn’t a priority for us (you can just use a reverse-proxy + subdomain or subfolder) we won’t be spending time to add support for this.

well, what are these parts? i still couldn’t uncover any..

and for me at least - on a plesk managed server where it’s a bit harder to see what’s actually happening behind the scenes - this reverse-proxying so far seems over my head.. and from what i found so far most plesk related howtos and threads essentially end up using different ports as well.. :roll_eyes:

That’s mostly unknown, but when you use a port and find out that it didn’t work, you’ll know. And then you can’t get help here, because it’s not supposed to work.

Your best bet is to install on a separate server.

هل لا يزال هذا هو الحال في عام 2020، حيث لا يمكن أو لا ينبغي تثبيت Discourse على منفذ مختلف عن 80/443؟ أم تم حل هذه المشكلة في النهاية؟

يبدو أن تثبيت nginx أمر كبير جدًا للتعامل مع مشكلة بهذه البساطة! فمعظم البرمجيات يمكنك ببساطة تحديد المنفذ الذي يجب أن يرتبط به. وأرى بالفعل منافذ http/https في ملف app.yml.

نعم، لا يزال المنفذ غير الافتراضي إعدادًا غير مدعوم للإنتاج.

إن وصف هذا الأمر بـ “مشكلة” هو أمر مبالغ فيه بعض الشيء، فالحاليًا هناك أسباب قليلة جدًا لتشغيل أي شيء على منافذ غير قياسية. أصبح من السهل الآن استخدام الوكيل مع nginx/traefik، كما أن شهادات SSL المجانية منتشرة في كل مكان.

هل يمكنك التوضيح قليلاً لماذا يُعد هذا مشكلة؟

لأن خادم المدرسة من المرحلة الابتدائية إلى الثانوية (K-12) الذي أحاول تثبيت البرنامج عليه يحد من البرامج التي يمكنني تثبيتها، ومن المنافذ التي يمكنني ربطها. كما أن هذا الخادم يشغل بالفعل خادم أباتشي على المنافذ 80 و443 و8080 لخدمات أخرى تقدمها المدرسة.

لا أستطيع تخيل سبب عدم دعم برامج خوادم لينكس في هذا العصر لتعريف المنفذ في ملف تكوين، بحيث يتمكن المستخدمون من تغيير المنفذ. هذا ما تفعله جميع البرامج التي أستطيع التفكير فيها، منذ أيام تيلنت وFTP وحتى يومنا هذا مع SSH وأباتشي وغيرها.

بالتأكيد، في الماضي، كان من الصعب الحصول على عناوين IP متعددة على المضيف، وكان تكوين رؤوس الاستضافة أكثر تعقيدًا.

الآن يمكنك تكوين شهادة SAN واحدة مع مجموعة من النطاقات، واستخدام وكيل عكسي لتوجيه حركة المرور إلى منافذ مختلفة، وكل ذلك مجانًا :money_with_wings: مجانًا :money_with_wings:.

انتهت أيام الحاجة إلى تشغيل التطبيقات على منافذ غير قياسية منذ زمن بعيد.

لقد مُنحت الإذن لتثبيت حزمة خادم واحدة ومنفذ واحد يمكننا استخدامه لاختبار Discourse. لكن إخبارهم بضرورة إشراك فرق أخرى على مستوى مجلس المدرسة لأنني بحاجة إلى تثبيت برمجيات وكيل عكسي أخرى، نظرًا لأن Discourse مبرمج بشكل ثابت للارتباط بمنفذ تستخدمه بالفعل فريق آخر، يعتبر عائقًا لا يمكن تجاوزه. فهم لن يؤذنوا أبدًا بمثل هذه التغييرات.

حينها ستكون خياراتك الوحيدة هي تثبيته خارج الموقع، أو ربما البحث عن منتج مختلف. خادم VPS بسعر 5 دولارات سيسمح لك باختبار Discourse بشكل شامل. وقد تكون قادرًا حتى على الحصول على فترة تجريبية مجانية.

قد يستحق الأمر توعيتهم ببعض الاتجاهات التي تتبناها العديد من المشاريع حاليًا. أصبحت التثبيتات الآلية باستخدام تقنيات مثل Docker واعتماد المنافذ القياسية هي القاعدة الآن.

نحن نقدم تجربة لمدة 3 أشهر دون أي التزامات لجميع المدارس عبر COVID-19 and Discourse

يمكنك ببساطة اعتماد ذلك لأغراض التجربة الخاصة بك، وإذا اضطررت إلى الاستضافة الذاتية في النهاية، فليس ذلك مشكلة. يمكنك أخذ بياناتك معك.

بصفتي أحد الوالدين الذي يحاول مساعدة مدرسة محلية من مرحلة الروضة حتى الثانوية في ظل جائحة كوفيد-19، فإن محاولتي لإقناع مجلس المدرسة بأكمله بضرورة تغيير طريقة عمل بنيتها التحتية لتكنولوجيا المعلومات هي… أمر غير مرجح.

أما فيما يتعلق بتثقيف الناس حول تبني الاتجاهات التي يستخدمها الآخرون، فأوصي بتوفير خيار “منفذ” مدعوم، كما هو الحال مع جميع برامج خوادم لينكس الأخرى، بحيث يتمكن المستخدمون من تغيير منفذ TCP بسهولة دون الحاجة إلى تثبيت وكلاء عكسيين.

شكرًا لك على رابط كوفيد-19، سام. سأبلغهم بذلك. لا أتخيل أن يُسمح لي بإجراء أي تعديلات أخرى على خادمهم، لذا آمل أن يسلكوا ذلك المسار.

كنتُ أستاذًا جامعيًا حاولتُ فعل ذلك طوال الوقت، وأنا أعرف عمّا تتحدث. أسهل حل هو الاستضافة الخارجية، على أمل أن يكون لديهم عرض نطاق كافٍ ولا توجد قواعد تُلزم بتخزين البيانات داخل الحرم الجامعي.

إذا كنتَ تفضل الاستضافة الذاتية بدلاً من الاستضافة عبر cdck كما هو مُقدَّم، فسأوفر لك تثبيتًا مجانيًا على Digital Ocean مع Mailgun. وسيكون من الأرجح تسجيل نطاق خاص بك أسهل، ما لم يكن موظفو التقنية مستعدين لإنشاء عدد كبير من سجلات DNS لك.

شكرًا لك على العرض.

أعتقد أننا فقدنا الفرصة لإنجاز هذا الأمر. فقد ألغى المدير الرئيسي هذا المشروع الآن، قائلًا إن الحلول يجب أن تأتي من مجلس المدرسة، ولا يمكنني تثبيت هذا على الخادم. لقد كانت محاولة تستحق. ويبدو أن مجلس المدرسة يحقق في استخدام Microsoft Teams كحل.