⚠ يبدو أن المنفذ 443 في هذا الكمبيوتر غير قابل للوصول باستخدام اسم المضيف: metabolism.logophilia.eu ----

مرحبًا، أحصل على الخطأ المذكور في العنوان (انظر أيضًا أدناه) بعد ظهور الرسالة “ المنافذ 80 و 443 حرة للاستخدام” أثناء التهيئة. تم إعداد DNS، وتم تكوين SSL، والموقع يعمل من الخارج (جرب ذلك بنفسك)، وتمت إضافة مخرجات curl (مختصرة) أدناه، أي أنه يمكن الوصول إليه من الجهاز نفسه. لقد نفدت من الأفكار حول ما ينقص. شكرًا على أي توضيح.

ملاحظة: AlmaLinux 10.2 - 6.12.0-211.7.4.el10_2.x86_64

# ./discourse-setup  
→ التحقق من وجود تحديثات لصورة معالج الإعداد... 
→ بدء معالج إعداد Discourse... 
 
 
 ___  _ 
|   \(_)___ __ ___ _  _ _ _ ___ ___ 
| |) | (_-\< / _/ _ \ || | '_(_-\< / -_) 
|___/|_/__/\__\___/\_,_|_| /__/\___| 
                       معالج الإعداد 
 
 
→ سيساعدك هذا المعالج في تكوين تثبيت Discourse. 
→ اضغط على Ctrl+C في أي وقت للإلغاء. 
 
── فحوصات النظام ── 
 
[1/5] التحقق من متطلبات النظام 
✓ جاري التشغيل بصلاحيات الجذر 
✓ Docker متاح 
✓ الذاكرة: 8 جيجابايت، المعالج: 4 أنوية 
 
── التكوين ── 
 
[2/5] إعداد التكوين 
✓ المنافذ 80 و 443 حرة للاستخدام 
→ إنشاء تكوين جديد... 
→ إنشاء تكوين جديد من القالب... 
 
── إعدادات الموقع ── 
 
[3/5] أدخل تفاصيل موقعك 
 
عنوان البريد الإلكتروني لحسابات المسؤول؟ 
eduard.pech@logophilia.eu▌ 
 
هل لديك اسم نطاق لـ Discourse؟ 
▸ نعم      لا 
 
اسم المضيف لـ Discourse؟ 
metabolism.logophilia.eu▌ 
 
هل تريد تكوين SMTP لإرسال البريد الإلكتروني؟ (يتطلب بيانات اعتماد SMTP) 
  نعم    ▸ لا 
 
 
── مراجعة التكوين ── 
 
 
╭────────────────────────────────────────────╮ 
│                                            │ 
│  اسم المضيف       metabolism.logophilia.eu   │ 
│  بريد المسؤول    eduard.pech@logophilia.eu  │ 
│  SMTP           (غير مُكوّن)           │ 
│  Let's Encrypt  مفعل                    │ 
│                                            │ 
╰────────────────────────────────────────────╯ 
 
 
هل يبدو هذا صحيحًا؟ 
▸ نعم      لا 
→ تم العثور على 8 جيجابايت من الذاكرة و 4 أنوية معالجة 
→ تعيين db_shared_buffers = 2048MB 
→ تعيين UNICORN_WORKERS = 8 
 
── التحقق من الشبكة ── 
 
[4/5] التحقق من تكوين النطاق 
→ التحقق من اسم نطاقك... 
⚠ يبدو أن المنفذ 443 لهذا الجهاز غير قابل للوصول باستخدام اسم المضيف: metabolism.logophilia.eu 
⚠ فشل الاتصال بـ http://metabolism.logophilia.eu (المنفذ 80) أيضًا. 
 
يشير هذا إلى أن metabolism.logophilia.eu يحل إلى عنوان IP لا يصل إلى هذه 
الآلة التي تقوم فيها بتثبيت Discourse. 
 
أول ما يجب فعله هو التأكد من أن metabolism.logophilia.eu يحل إلى عنوان IP الخاص بهذا الخادم. 
عادةً ما يتم ذلك في نفس المكان الذي اشتريت فيه النطاق. 
 
إذا كنت متأكدًا من أن عنوان IP يُحل بشكل صحيح، فقد تكون المشكلة متعلقة بجدار الحماية. 
قد يساعد البحث في الويب عن "فتح المنافذ خادع السحابي الخاص بك". 
 
هذه الأداة مصممة فقط لأبسط التثبيتات القياسية. إذا لم تتمكن من حل 
المشكلة المذكورة أعلاه، فستحتاج إلى تحرير containers/app.yml بنفسك ثم كتابة: 
 
    ./launcher rebuild app 
 
 
✗ فشل التحقق من DNS لـ metabolism.logophilia.eu 
[root@logophilia discourse]# dig metabolism.logophilia.eu 
 
; <<< DiG 9.18.33 <<< metabolism.logophilia.eu 
;; الخيارات العامة: +cmd 
;; تم الحصول على الإجابة: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36726 
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 
 
;; قسم OPT PSEUDOSECTION: 
; EDNS: الإصدار: 0, flags:; udp: 512 
;; قسم السؤال: 
;metabolism.logophilia.eu.      IN      A 
 
;; قسم الإجابة: 
metabolism.logophilia.eu. 300   IN      A       75.119.134.68 
 
;; وقت الاستعلام: 8 مللي ثانية 
;; الخادم: 213.136.95.10#53(213.136.95.10) (UDP) 
;; الوقت: Sat Jun 06 04:52:23 CEST 2026 
;; حجم الرسالة المستلمة: 69 
 
[root@logophilia discourse]# curl -v https://metabolism.logophilia.eu 
* تم حل Host metabolism.logophilia.eu:443. 
* IPv6: (لا يوجد) 
* IPv4: 75.119.134.68 
* جاري المحاولة 75.119.134.68:443... 
* ALPN: curl يعرض h2,http/1.1 
* TLSv1.3 (خارجي)، مصافحة TLS، ترحيب العميل (1): 
*  CAfile: /etc/pki/tls/certs/ca-bundle.crt 
*  CApath: لا يوجد 
* TLSv1.3 (داخلي)، مصافحة TLS، ترحيب الخادم (2): 
* TLSv1.3 (داخلي)، TLS تغيير التشفير، تغيير مواصفات التشفير (1): 
* TLSv1.3 (داخلي)، مصافحة TLS، امتدادات مشفرة (8): 
* TLSv1.3 (داخلي)، مصافحة TLS، شهادة (11): 
* TLSv1.3 (داخلي)، مصافحة TLS، التحقق من الشهادة (15): 
* TLSv1.3 (داخلي)، مصافحة TLS، انتهى (20): 
* TLSv1.3 (خارجي)، TLS تغيير التشفير، تغيير مواصفات التشفير (1): 
* TLSv1.3 (خارجي)، مصافحة TLS، انتهى (20): 
* اتصال SSL باستخدام TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / RSASSA-PSS 
* ALPN: الخادم قبل http/1.1 
* شهادة الخادم: 
*  الموضوع: CN=metabolism.logophilia.eu 
*  تاريخ البدء: Jun  6 00:26:43 2026 GMT 
*  تاريخ الانتهاء: Sep  4 00:26:42 2026 GMT 
*  subjectAltName: تطابق المضيف "metabolism.logophilia.eu" مع الشهادة "metabolism.logophilia.eu" 
*  المصدّر: C=US; O=Let's Encrypt; CN=YR2 
*  التحقق من شهادة SSL ناجح. 
*   مستوى الشهادة 0: نوع المفتاح العام RSA (2048/112 Bits/secBits)، مُوقّع باستخدام sha256WithRSAEncryption 
*   مستوى الشهادة 1: نوع المفتاح العام RSA (2048/112 Bits/secBits)، مُوقّع باستخدام sha256WithRSAEncryption 
*   مستوى الشهادة 2: نوع المفتاح العام RSA (4096/152 Bits/secBits)، مُوقّع باستخدام sha256WithRSAEncryption 
*   مستوى الشهادة 3: نوع المفتاح العام RSA (4096/152 Bits/secBits)، مُوقّع باستخدام sha256WithRSAEncryption 
* متصل بـ metabolism.logophilia.eu (75.119.134.68) المنفذ 443 
* باستخدام HTTP/1.x 
> GET / HTTP/1.1 
> Host: metabolism.logophilia.eu 
> User-Agent: curl/8.12.1 
> Accept: */* 
>  
* تم إرسال الطلب بالكامل 
* TLSv1.3 (داخلي)، مصافحة TLS، تذكرة الجلسة الجديدة (4): 
* TLSv1.3 (داخلي)، مصافحة TLS، تذكرة الجلسة الجديدة (4): 
< HTTP/1.1 200 OK 
< Date: Sat, 06 Jun 2026 02:52:36 GMT 
< Server: Apache 
< Last-Modified: Sat, 06 Jun 2026 01:25:19 GMT 
< ETag: "1325f-6538ba67ff892" 
< Accept-Ranges: bytes 
< Content-Length: 78431 
< Content-Type: text/html; charset=UTF-8 
<  
<!doctype html> 
<html lang="en" data-bs-theme="auto"> 
<head> 
  <title> 
    metabolism.logophilia.eu &mdash;  صفحة ترحيب النطاق لـ  </title> 
  <meta charset="utf-8">
……


مرحبًا بك،

لقد تفحصت موقعك الإلكتروني بنفسي. يبدو أن موفر الاستضافة الخاص بك يحتجز المنفذ 443 لعرض صفحة الترحيب هذه. ستحتاج إلى معرفة كيفية تحرير المنفذ 443/80 بالكامل تمامًا حتى يتمكن Discourse من التحكم فيه.

لقد قمت بذلك بالفعل، فالخادم الافتراضي الخاص (VPS) مُدار عبر Virtualmin، والأمر مجرد خانة اختيار. للأسف، عند إلغاء تحديد خيار “تمكين الموقع الإلكتروني”، لا يمكنني استخدام أمر curl للوصول إلى المنفذ 443 أو 80 من المضيف، ولا يزال إعداد Discourse يشتكي بنفس الخطأ. لذا فكرت في إعادة تمكين الموقع الإلكتروني، على الأقل لأظهر أن مصافحة SSL تعمل.

وكما تلاحظ في منشوري الأصلي، فإن إعداد Discourse يدعي في الواقع (في البداية) أن المنفذ 443 متاح. هذه أول عملية تثبيت لي، وسأفسر ذلك على النحو التالي: كل شيء أخضر. إذن لماذا يغير الإعداد “رأيه”؟

ومع ذلك، لا أحتاج حقًا إلى فهم كل تفصيلة. فقط لأقول: عند تعطيل Apache على النطاق الفرعي، تكون نتيجة إعداد Discourse هي نفسها.

شكرًا لك على تخصيص الوقت. إذا كان هناك أي شيء آخر يمكنني تقديمه للتوضيح، فسأفعل (تقريبًا) أي شيء.

واجهتُ نفس المشكلة هنا (على خادمي الخاص في المنزل):

أعتقد أن الحل هو ببساطة تنفيذ الأمر التالي إذا كنت متأكدًا بنسبة 100% من صحة إعدادات DNS وأن المنافذ تعمل بشكل صحيح.

./install-discourse --skip-connection-test

شكرًا لك، يبدو أن ذلك قد نجح! :purple_heart:

النص تجاوز تقييم 5/5 الآن، ويبدو أنه يقوم برفع وتثبيت العديد من العناصر الإضافية. شهادة SSL غير صحيحة حاليًا، وأظن أنها في انتظار انتهاء مهلة TTL، أو ربما ستعمل بشكل صحيح بمجرد انتهاء الإعداد.

في حين أنني لا أعرف شيئًا تقريبًا عن Discourse أو Docker أو حتى Ruby… إلا أن جانب DNS لا يشكل أي مشكلة أبدًا :slight_smile: شكرًا مرة أخرى!

أرى أنه تم بالفعل وضع علامة “حل” على هذا الموضوع. لكن لدي سؤال آخر، إذا أمكن.

أعلم أن Postgres مطلوب، لكنه غير مذكور في

https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md

لذلك ظننت أن صورة Docker تأتي مع Postgres مُثبّتًا مسبقًا. هل يمكنك التوضيح ما إذا كنت بحاجة إلى تثبيت Postgres على الخادم الافتراضي (VPS)؟ لأن تعليمات التثبيت لا تذكر ذلك.

… أو ربما أن Docker يأتي مع Postgres، لكن السكربت فشل بطريقة ما؟ لأنه يتوقف في النهاية:

........
I, [2026-06-06T04:23:49.114769 #1]  INFO -- : File > /etc/runit/1.d/install-ssl  chmod: +x  chown: 
I, [2026-06-06T04:23:49.114999 #1]  INFO -- : Replacing # after ssl with if [ -z "$DISABLE_LETSENCRYPT" ] || [ -n "$ENABLE_LETSENCRYPT" ]; then
  /usr/local/bin/configure-ssl
  exec /usr/local/bin/configure-letsencrypt
fi
# after ssl in /etc/runit/1.d/install-ssl
I, [2026-06-06T04:23:49.125964 #1]  INFO -- : File > /usr/local/bin/configure-ssl  chmod: +x  chown: 
I, [2026-06-06T04:23:49.127031 #1]  INFO -- : > curl https://raw.githubusercontent.com/acmesh-official/acme.sh/3.0.6/acme.sh > /opt/acme.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  215k  100  215k    0     0   635k      0 --:--:-- --:--:-- --:--:--  637k
I, [2026-06-06T04:23:49.514883 #1]  INFO -- : > chmod +x /opt/acme.sh
I, [2026-06-06T04:23:49.554670 #1]  INFO -- : File > /usr/local/bin/configure-letsencrypt  chmod: +x  chown: 
I, [2026-06-06T04:23:49.596808 #1]  INFO -- : File > /usr/local/bin/letsencrypt  chmod: +x  chown: 
I, [2026-06-06T04:23:49.598926 #1]  INFO -- : > echo "Beginning of custom commands"
Beginning of custom commands
I, [2026-06-06T04:23:49.605809 #1]  INFO -- : > echo "End of custom commands"
End of custom commands
I, [2026-06-06T04:23:49.608842 #1]  INFO -- : Terminating async processes
I, [2026-06-06T04:23:49.609015 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main pid: 44
I, [2026-06-06T04:23:49.609157 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 111
2026-06-06 04:23:49.609 UTC [44] LOG:  received fast shutdown request
111:signal-handler (1780719829) Received SIGTERM scheduling shutdown...
2026-06-06 04:23:49.612 UTC [44] LOG:  aborting any active transactions
2026-06-06 04:23:49.619 UTC [44] LOG:  background worker "logical replication launcher" (PID 58) exited with exit code 1
2026-06-06 04:23:49.623 UTC [53] LOG:  shutting down
2026-06-06 04:23:49.634 UTC [53] LOG:  checkpoint starting: shutdown immediate
111:M 06 Jun 2026 04:23:49.683 * User requested shutdown...
111:M 06 Jun 2026 04:23:49.683 * Saving the final RDB snapshot before exiting.
111:M 06 Jun 2026 04:23:49.698 * DB saved on disk
111:M 06 Jun 2026 04:23:49.700 # Redis is now ready to exit, bye bye...
2026-06-06 04:23:49.711 UTC [53] LOG:  checkpoint complete: wrote 87 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.041 s, sync=0.022 s, total=0.088 s; sync files=52, longest=0.008 s, average=0.001 s; distance=86 kB, estimate=86 kB
2026-06-06 04:23:49.735 UTC [44] LOG:  database system is shut down