موقع غير متاح بعد الترقية من 3.4.0 إلى 3.4.1

مرحباً بالجميع،

لقد قمت للتو بترقية نسخة Discourse الخاصة بي من الإصدار 3.4.0 إلى 3.4.1 (باستخدام ./launcher rebuild app). تمت الترقية بسلاسة - لم تكن هناك أخطاء أثناء العملية، وحاوية Docker قيد التشغيل. ومع ذلك، فإن الموقع غير متاح على الإطلاق.

هل واجه أي شخص هذه المشكلة من قبل؟ أي أفكار حول كيفية استكشاف الأخطاء وإصلاحها؟ كيف يمكنني تزويدكم بمزيد من المعلومات؟

شكراً مقدماً على مساعدتكم!

مرحبًا،

هل حاولت إعادة البناء للمرة الثانية؟ هناك حالات يمكن أن يساعد فيها ذلك. سأجرب ذلك أولاً.

يمكنك أيضًا أن تنظر إلى ./launcher logs app و /shared/standalone/log/rails/production.log إذا رأيت شيئًا مثيرًا للاهتمام.

إعجاب واحد (1)

نحن نجرب مستجيبًا يعمل بالذكاء الاصطناعي، وهو يرسل همسات هنا، وفي هذه الحالة قدم بعض النصائح المعقولة:

مرحباً، يبدو أن مشكلتك يمكن حلها بالتحقيق في سجلات الخادم لتشخيص ما حدث بشكل خاطئ بعد الترقية. إليك كيفية المتابعة:

  1. تحقق من سجلات أخطاء Discourse في واجهة المسؤول:
  • إذا كان لديك وصول المسؤول وكان الموقع لا يزال متاحًا جزئيًا، يمكنك التحقق من السجلات من لوحة المسؤول. انتقل إلى /logs للعثور على رسائل الخطأ.
  1. افحص سجلات الخادم الأخرى:
  • قم بتشغيل الأوامر التالية على الخادم الخاص بك:
cd /var/discourse
./launcher enter app
cd /shared/log/rails
less production.log
  • استخدم less أو أدوات مشابهة لقراءة السجلات وتحديد الأخطاء المحتملة.
  1. تحقق من سجلات NGINX:
  • يمكنك التحقق من سجلات NGINX لأخطاء خادم الويب باستخدام:
cd /var/discourse
./launcher enter app
cd /var/log/nginx
less error.log
  1. مشاكل الشبكة و DNS:
  • قم بإجراء اختبارات للتأكد من أن DNS الخاص بنطاقك يحل بشكل صحيح وأن المنافذ مثل 443 و 80 متاحة.

أخبرنا بما تجده في السجلات، ويمكننا تقديم المزيد من التفاصيل للمساعدة في حل المشكلة.

موارد مفيدة:

سياق إضافي:
إذا استمرت المشكلة، فقد تكون الأسباب الشائعة هي:

  • عدم توافق المكونات الإضافية بعد الترقية.
  • ذاكرة/مساحة تخزين غير كافية أثناء إعادة البناء.
  • تغييرات التكوين في app.yml.
إعجابَين (2)

شكرًا!

نعم، ونفس النتيجة

هذه هي السجلات:

[default] start
[default] done
[default] Shutting down
[default] Terminating quiet threads
[default] Scheduler exiting...
[default] Pausing to allow jobs to finish...
[default] Bye!
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] Booting Sidekiq 6.5.12 with Sidekiq::RedisConnection::RedisAdapter options {:host=>"data", :port=>6379, :namespace=>"sidekiq"}
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] Booted Rails 7.2.2.1 application in production environment
[default] Running in ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [x86_64-linux]
[default] See LICENSE and the LGPL-3.0 for licensing details.
[default] Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org
[default] start
[default] done
root@forum-web-only:/shared/log/rails#

هذه هي سجلات NGINX:

2025/03/07 22:13:42 [warn] 2195#2195: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:42 [emerg] 2195#2195: unknown "public" variable
2025/03/07 22:13:43 [warn] 2198#2198: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:43 [emerg] 2198#2198: unknown "public" variable
2025/03/07 22:13:44 [warn] 2200#2200: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:44 [emerg] 2200#2200: unknown "public" variable
2025/03/07 22:13:45 [warn] 2202#2202: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:45 [emerg] 2202#2202: unknown "public" variable
2025/03/07 22:13:46 [warn] 2204#2204: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:46 [emerg] 2204#2204: unknown "public" variable

هذه هي سجلات discourse-doctor:

DISCOURSE DOCTOR Fri 07 Mar 2025 10:15:28 PM UTC
OS: Linux forum 5.4.0-208-generic #228-Ubuntu SMP Fri Feb 7 19:41:33 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux


YML=web_only.yml
Found containers/web_only.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.pragmaticentrepreneurs.com
SMTP_ADDRESS=smtp.eu.mailgun.org
DEVELOPER_EMAILS=REDACTED

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.pragmaticentrepreneurs.com
SMTP_ADDRESS=smtp.eu.mailgun.org
DEVELOPER_EMAILS=REDACTED
SMTP_PASSWORD=REDACTED
SMTP_PORT=587
SMTP_USER_NAME=postmaster@mg.pragmaticentrepreneurs.com
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 27.3.1, build ce12230

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                      COMMAND        CREATED         STATUS         PORTS                                       NAMES
d5a81b9154f4   local_discourse/web_only   "/sbin/boot"   6 minutes ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   web_only
0b49a4b64386   local_discourse/data       "/sbin/boot"   19 months ago   Up 22 hours                                                 data


Discourse container web_only is running


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-akismet.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/camilleroux/discourse-affiliate.git
          - git clone https://github.com/somoza/discourse-xorigin.git
          - git clone https://github.com/discourse/discourse-chat-integration.git

WARNING:
You have what appear to be non-official plugins.
If you are having trouble, you should disable them and try rebuilding again.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at forum.pragmaticentrepreneurs.com: NOT FOUND
Discourse version at localhost: NOT FOUND


==================== MEMORY INFORMATION ====================
OS: Linux
RAM (MB): 2067

              total        used        free      shared  buff/cache   available
Mem:           1971         988         101         178         881         627
Swap:          2047         190        1857

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        49G   39G   11G  80% /

==================== DISK INFORMATION ====================
Disk /dev/loop0: 55.37 MiB, 58052608 bytes, 113384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop1: 63.76 MiB, 66842624 bytes, 130552 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop2: 55.37 MiB, 58052608 bytes, 113384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop3: 91.85 MiB, 96292864 bytes, 188072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop4: 91.9 MiB, 96346112 bytes, 188176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop5: 63.71 MiB, 66789376 bytes, 130448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop6: 44.45 MiB, 46596096 bytes, 91008 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop7: 44.46 MiB, 46604288 bytes, 91024 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 603625F3-7AE2-40CB-B05E-0BD7EA2D57E4

Device      Start       End   Sectors  Size Type
/dev/vda1  227328 104857566 104630239 49.9G Linux filesystem
/dev/vda14   2048     10239      8192    4M BIOS boot
/dev/vda15  10240    227327    217088  106M Microsoft basic data

Partition table entries are not in disk order.

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Sending mail to REDACTED  . .
Testing sending to  using smtp.eu.mailgun.org:587, username:*** with plain auth.
SMTP server connection successful.
Sending to . . .
Mail was not sent.

Reason: 501 Invalid command or cannot parse to address

==================== DONE! ====================

هل يقدم هذا مزيدًا من المعلومات؟

إعجاب واحد (1)

مرحباً! هل يرى أحد كيف يمكنني إصلاح ذلك؟ شكراً جزيلاً :folded_hands:

إعجاب واحد (1)

إنها تعمل لدي. ربما لأنني لست مسجلاً للدخول. لذا ربما يمكنك المحاولة في الوضع الآمن.

أحد المكونات الإضافية الخاصة بك غير رسمي وقديم جدًا، إنه نسخة مشتقة من نسخة أحدث:

مرحباً! شكراً لمساعدتك. لقد واصلت التحقيق.

السياق:

الاختبارات:

  • نفس المشكلة عندما أحاول الاحتفاظ بالمكونات الإضافية الأساسية والرسمية فقط.
  • الإصدار 3.4.2 لا يحل المشكلة؛ نفس نتيجة الإصدار 3.4.0.
  • لا يمكنني الوصول إلى الوضع الآمن لأنه بعد إعادة البناء، يصبح موقع الويب غير متاح.
  • عندما أقوم باستعادة اللقطة مع الإصدار 3.4.0، فإنها تعمل مرة أخرى.

المشكلة مرتبطة على الأرجح بحقيقة أنه في سجلات NGINX الخاصة بي:

يبدو أنها مرتبطة بـ SSL، ولكن هذه المشكلة لا تبدو مثل مشكلتي: How to solve error duplicate extension "wasm"

هل ترى من أين تأتي المشكلة؟

عادةً، عندما يحدث خطأ ما في إعادة البناء، يتم عرض السبب. حاول إعادة البناء مرة أخرى وقم بالتمرير للأعلى بعد اكتمالها للبحث عن رسالة الخطأ.

إذا لم تحقق أي تقدم، يمكنك البدء من جديد باستخدام VPS جديد واستعادة النسخة الاحتياطية الخاصة بك والمحاولة مرة أخرى.

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