تثبيت Discourse على Windows لأغراض التطوير

:information_source: تم اختبار هذا البرنامج التعليمي على Windows 10 و 11.

لإعداد بيئة تطوير لـ Discourse على Windows، يمكنك فعل ذلك باستخدام ميزة Windows Subsystem for Linux.

يتطلب هذا الإعداد تثبيت WSL 2. وهو متاح فقط في إصدارات Windows 10 18917 أو الأحدث. سنفترض أنك قمت بالفعل بتثبيت Windows Subsystem for Linux 2 (Ubuntu) على نظام Windows 10 الخاص بك. تحذير: قم بتثبيت Ubuntu 18.04، وليس 20.04، حيث قد تفشل بعض التثبيتات على 20.04. لمزيد من المعلومات، راجع ملاحظات 30 يونيو 2020 في أسفل هذا المنشور.

لنبدأ!

تثبيت Discourse

  1. اتبع الخطوات الموضحة في الموضوع دليل المبتدئين لتثبيت Discourse على Ubuntu للتطوير في البداية حتى تصل إلى خطوة استنساخ Discourse.
  1. قبل إعداد قاعدة البيانات، يجب عليك بدء خدمة PostgreSQL وخادم Redis يدويًا باستخدام الأوامر التالية:

    sudo service postgresql start
    redis-server --daemonize yes
    
  2. ثم تابع جميع الخطوات المتبقية من دليل Ubuntu.

إنشاء أمر لبدء Discourse

الآن أصبحت بيئة التطوير الخاصة بك جاهزة تقريبًا. المشكلة الوحيدة هي أنه في كل مرة تفتح فيها Ubuntu على Windows، يجب عليك بدء خدمة PostgreSQL وخادم Redis يدويًا. لا تقلق، يمكننا إيجاد حل بديل لإنشاء أمر مخصص :wink:

cd ~

قم بإنشاء ملف جديد باستخدام الأمر nano start-discourse والصق المحتوى أدناه ثم احفظ الملف واخرج.

#!/bin/bash

# لبدء PostgreSQL
sudo service postgresql start

# لبدء خادم Redis
redis-server --daemonize yes

الآن قم بتعديل الصلاحيات (CHMOD) باستخدام الأمر التالي:

chmod +x start-discourse

ثم انسخ الملف إلى مجلد bin الخاص بك:

sudo cp start-discourse /usr/bin/

تم. الآن، كلما فتحت Ubuntu bash، ما عليك سوى تشغيل الأمر أدناه والبدء في التطوير :+1:

start-discourse

بدلاً من ذلك، إذا كنت تستخدم إصدارات Windows 10 Enterprise أو Pro أو Education، فيمكنك إنشاء آلة افتراضية Linux في hyper-v لإعداد بيئة تطوير Discourse.

ملاحظات حول بيئة Windows

اعتبارًا من 30 يونيو 2020:
اعتبارًا من 1 يوليو 2020

تم المراجعة آخر مرة بواسطة @SaraDev في 2022-06-16T02:00:00Z


هذا المستند يتحكم في إصداراته - اقترح التغييرات على github.

52 إعجابًا
How to install Discourse on windows
Help installing Discourse for Developer
Database connection error when setting up Discourse development environment using Linux Bash Shell on Windows 10
Restoring backup fails in Win10/Ubuntu development environment
How to Install Discourse on LocalHost in Windows?
How can i install Discourse forum on my win 10 dedicated server OVH
Error installing `bullseye-backports` when trying to install for Development
How to install on localhost
Restoring backup fails in Win10/Ubuntu development environment
Trying to set up Discourse on my website
Help with setting up discourse An error occurred while installing xorcist (1.1.2), and Bundler cannot continue
Migrate a MyBB forum to Discourse
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Unable to setup discourse in my windows 10
Self hosting discourse with WSL shows an error, the command shown also doesnt work
No such file or directory - convert (Errno::ENOENT)
PG::UndefinedTable: ERROR: relation "pg_range" does not exist
I'm having trouble installing a local Discourse instance on Windows 11
Issues while installing Discourse on WSL
Guide to Setting Up Discourse Development Environment - Windows 11
Need help integrating code wrote on Edittext to the Discourse
Problem in development Installation
Contributing to Discourse development
Subscribe to post an ad
Restoring backup fails in Win10/Ubuntu development environment
Migrate a Ning forum to Discourse
Windows server publish method
Use the Discourse API ruby gem
Topics which users cannot directly reply to, but can create a linked topic?
How to add a new language
How to Start Sidekiq When Using Puma
Discourse-webpack: A boilerplate for developing JS-heavy Discourse components
How can I directly edit Discourse database from a GUI?
Can't set up dev environment due to cppjieba_rb failing to install
Cloning and making our own Discourse community
How to Add Ngrok to Allowed Hosts
»vagrant up« hangs
Discourse installation end to end on Windows Server 2016
No connection to db issue
How to Install Discourse on LocalHost in Windows?
WSL environment deadlocks
Problem with development on Windows with Docker and mounted volume
Please help, how do I install Discourse on macOS?
Discourse standalone
Set up a local Discourse Development Environment?
Migrate a NodeBB forum with Redis to Discourse

حسنًا، وجدت حلاً.

لاحظت أن استبدال 127.0.0.1 بـ localhost سيصلح الصور.

بعد البحث قليلاً، هذا هو الأمر الذي يمكنك استخدامه لبدء Discourse:

DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u


سأحاول تحديث الدليل لاحقًا.

4 إعجابات

هل هناك فرصة لمراجعة طلب السحب هذا؟

هذا من شأنه أن يجعل هذا الدليل أكثر سهولة.

3 إعجابات

هل لديك فكرة عن سبب حصولي على “للأسف، حدث خطأ غير متوقع، ولا يمكن لـ Bundler المتابعة.” بعد bundle install؟

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

نفس المشكلة

هل يمكنك تقديم لقطة شاشة للخطأ؟ ما هو إصدار Ruby المثبت لديك؟

أواجه مشكلة في التبعيات:

ux430uq@Asus-UX430UQ:~/discourse$ bundle install
You must use Bundler 2 or greater with this lockfile.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Bundler version 1.16.1

ux430uq@Asus-UX430UQ:~/discourse$ gem install bundler

Fetching: bundler-2.4.20.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /var/lib/gems/2.5.0 directory.
ux430uq@Asus-UX430UQ:~/discourse$
ux430uq@Asus-UX430UQ:~/discourse$ sudo gem install bundler
[sudo] password for ux430uq:
Fetching: bundler-2.4.20.gem (100%)
ERROR:  Error installing bundler:
        The last version of bundler (>= 0) to support your Ruby & RubyGems was 2.3.26. Try installing it with `gem install bundler -v 2.3.26`
        bundler requires Ruby version >= 2.6.0. The current ruby version is 2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Bundler version 1.16.1
ux430uq@Asus-UX430UQ:~/discourse$

كيف يمكنني إصلاح ذلك بسهولة؟ كنت أحاول تثبيت 2.6.0، ثم 2.7.0، ولكن كانت هناك دائمًا مشاكل أخرى مع هذا.

كما ورد في بعض التعليقات السابقة، واجهت أيضًا بعض الصعوبات والأخطاء أثناء محاولة اتباع هذا الدليل - جربت على كل من سطح مكتب يعمل بنظام Windows 10 و Windows 11.

بعد بعض التجربة والخطأ، توصلت أخيرًا إلى خطوات تؤدي إلى بيئة تطوير تعمل بالكامل تحت نظام Windows 11، تم اختبارها على أحدث إصدار 22H2 وأيضًا على الإصدار القادم 23H2 Release Preview (أفترض أنه سيعمل أيضًا على أحدث إصدار من Windows 10).

إذا كان ذلك مفيدًا لأي شخص، فقد نشرت الدليل للتو هنا: -

آمل أن يساعد هذا الأشخاص مثلي الذين يحاولون تشغيل Discourse تحت نظام Windows :smiley:

إعجابَين (2)

لقد مررت بهذا الدليل الرسمي بأكمله مرة أخرى للتأكد من عدم تعطل أي شيء منذ محاولتي الأخيرة.
لقد قمت بتثبيت Ubuntu (إصدار غير محدد) عبر WSL على نظام Windows 11، والذي قام بتثبيت أحدث إصدار LTS، وهو 22.04 في هذه الحالة.

لم أواجه أي مشاكل؛ كل شيء كان مباشرًا، بدون أخطاء، وتثبيت التطوير يعمل.

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


تحذيران مع ذلك:

عند تثبيت Node.js:

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

                           تحذير إيقاف البرنامج النصي
  هذا البرنامج النصي، الموجود على https://deb.nodesource.com/setup_X، والذي كان
  يُستخدم لتثبيت Node.js، تم إيقافه الآن وسيتم جعله غير نشط في النهاية.

  يرجى زيارة مستودع توزيعات NodeSource على Github واتباع
  التعليمات لترحيل المستودع الخاص بك.
  https://github.com/nodesource/distributions

  يحتوي مستودع GitHub لتوزيعات Node.js Linux على
  معلومات حول إصدارات Node.js وتوزيعات Linux
  المدعومة وكيفية تثبيتها.
  https://github.com/nodesource/distributions


                          تحذير إيقاف البرنامج النصي

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

لتجنب هذا الانتظار، قم بترحيل البرنامج النصي
سيستمر في 60 ثانية (اضغط Ctrl-C للإلغاء) ...

عند تشغيل redis-server --daemonize yes:

# تحذير يجب تمكين تجاوز تخصيص الذاكرة! بدون ذلك، قد يفشل الحفظ في الخلفية أو النسخ المتماثل في ظروف الذاكرة المنخفضة. عند تعطيله، يمكن أن يتسبب أيضًا في فشل دون وجود ذاكرة منخفضة، انظر https://github.com/jemalloc/jemalloc/issues/1328. لإصلاح هذه المشكلة، أضف 'vm.overcommit_memory = 1' إلى /etc/sysctl.conf ثم أعد التشغيل أو قم بتشغيل الأمر 'sysctl vm.overcommit_memory=1' ليصبح هذا ساري المفعول.

لست متأكدًا من سبب وجود العديد من المشكلات لدي حينها! ربما كان هناك شيء غريب في تثبيت ويندوز الخاص بي تمكنت من إصلاحه أثناء استكشاف الأخطاء وإصلاحها دون أن أدرك ذلك! :stuck_out_tongue:

ومع ذلك، ما زلت سعيدًا بما تعلمته حتى الآن وأتطلع إلى مواصلة العمل على ترحيل منتدياتي إلى Discourse.

إعجابَين (2)

لقد اضطررت إلى إعادة تثبيت ويندوز، ولدي الآن ويندوز 11 جديد مثبت.
سأتبع الدليل وأبلغ لاحقًا! سأضع دليل @AliBenBongo في الاعتبار أيضًا.

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

هذا متابعة.
بالتأكيد يمكن الاستعانة بدليل محدّث، لكنه لا يزال يعمل بشكل رائع على نظام Windows 11 22H2 جديد. :+1:
المشكلة الوحيدة التي واجهتني، كانت أنه حتى مع عمل أمر wsl في الطرفية، فإن ميزة WSL لم تكن ممكّنة افتراضيًا:

3 إعجابات

أعتقد أن هذا الدليل قديم. الخطوات المذكورة في دليل Ubuntu/Debian لم تعد موجودة.

هل هناك طريقة للتراجع عن كل هذه الخطوات، على سبيل المثال، عكس البرنامج النصي للتثبيت للحزم والجواهر والاستنساخ؟

هل لا يزال تثبيت 18.04 فوق 20.04 مطلوبًا؟

تلقي خطأ عند تثبيت nodejs:

# apt install nodejs

قراءة قوائم الحزم... تم
بناء شجرة الاعتماديات
قراءة معلومات الحالة... تم
تعذر تثبيت بعض الحزم. قد يعني هذا أنك طلبت
وضعًا مستحيلًا أو إذا كنت تستخدم التوزيعة غير المستقرة
فإن بعض الحزم المطلوبة لم يتم إنشاؤها بعد
أو تم نقلها خارج Incoming.
قد تساعد المعلومات التالية في حل الموقف:

الحزم التالية لديها اعتماديات غير ملباة:
 nodejs : يعتمد على: libc6 (>= 2.28) ولكن سيتم تثبيت 2.27-3ubuntu1.6
E: تعذر تصحيح المشاكل، لديك حزم معطلة.```

فشل التثبيت في 24.04، ولا يمكن للمضيف الاتصال بالمنفذ 3000

أنا أستخدمه على الإصدار 24.04. أنصح بمشاركة المزيد من المعلومات حول كيفية ظهور الأمور عند بدء تشغيل الخادم.

جرب FORCE_HOSTNAME=localhost bin/ember-cli -u والذي سيقوم بتشغيل خادمي الواجهة الخلفية والواجهة الأمامية في آن واحد.

(أثناء التنقل: بناءً على الذاكرة)