كيفية الفتح عبر IP داخلي؟

أيها الخبراء الأعزاء،

أقدر مساهماتكم حقًا!!

حاليًا، تمكنت بنجاح من بناء Discourse على جهاز الكمبيوتر المحلي، ويمكنني فتحه عبر localhost:3000. إنه رائع للغاية، بما في ذلك إنشاء المواضيع والنشر وما إلى ذلك.

لقد اتبعت في الغالب هذا الدليل هنا. إنه حقًا مذهل!

ومع ذلك، لا يمكنني فتحه عبر عنوان IP الداخلي الخاص بي (أي عنوان شبكة المنطقة المحلية). على سبيل المثال، 10.1.2.139. (شبه هذا النوع من عناوين IP) أريد فتح هذا المنتدى على أجهزة مختلفة. (أي الوصول إليه من جهاز الكمبيوتر المحمول الخاص بي.)

إعادة الإنتاج

احصل على سكريبت bash (install_discourse.sh) من: install-rails/linux at main · discourse/install-rails · GitHub

chmod +x install_discourse.sh
sudo ./install_discourse.sh

git clone https://github.com/discourse/discourse.git ~/discourse
sudo -u postgres createuser -s "$USER"
cd ~/discourse

source ~/.bashrc
bundle install

bundle exec rake db:create 
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

bundle exec rake autospec (سيظهر بعض الأخطاء.)

بدء الخادم:

bundle exec rails server
أو
bundle exec rails server --binding=0.0.0.0

إنشاء مستخدم مسؤول

RAILS_ENV=development bundle exec rake admin:create

إعداد البريد الإلكتروني

mailcatcher --http-ip 0.0.0.0

هل هناك أي اقتراحات للوصول عبر عنوان IP المحلي؟
شكرًا جزيلاً لكم.

مع أطيب التحيات،
جييه

إعجابَين (2)

ما الأمر الذي استخدمته لبدء الخادم؟ يجب عليك استخدام هذا الأمر:

bundle exec rails server --binding=0.0.0.0
3 إعجابات

أنا أيضاً واجهت صعوبة في جعل صندوق التطوير يستمع إلى عنوان IP مع تثبيت تطوير حديث على Ubuntu.

أنا متأكد جداً من أنني قمت بما أوصى به سيمون بالإضافة إلى استخدام bin/rails

إعجابَين (2)

عزيزي @simonk،

شكرًا لك على ردك!!
كنت أستخدم ctrl+c لإيقاف العملية في الطرفية، ثم أبدأها مرة أخرى باستخدام الأمر bundle exec rails server --binding=0.0.0.0، لكن يبدو أن الأمر لا يزال غير فعال.

أود أن أعرف الطريقة الصحيحة لإيقافه ثم تشغيله مجددًا؟ لأنني لاحظت أنه حتى بعد إغلاق الطرفية، ما زلت قادرًا على الوصول إلى المنتدى. علاوة على ذلك، لم أقم بالبناء عبر حاوية Docker، لذا لا أملك أداة launcher لاستخدام الأمر ./launcher stop app. كما جربت الأمر kill $(cat tmp/pids/server.pid) لكنه رد بـ cat: tmp/pids/server.pid No such file or directory.

سأكون ممتنًا جدًا لأي تلميح يمكنك تقديمه.

شكرًا جزيلاً!

مع أطيب التحيات،
جييه

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

(تنويه: لم أجرب تشغيل rails بهذه الطريقة بنفسي - فأنا أستخدم بيئة التطوير المعتمدة على docker بدلاً من ذلك)

هل أنت متأكد من ذلك؟ لقد وقعت في هذا الخطأ من قبل لأن متصفحي كان قد خبّأ تطبيق discourse وسمح لي بتصفح المواضيع حتى لو كانت عملية الخادم غير نشطة. قد ترغب في الاختبار باستخدام curl بدلاً من ذلك:

curl http://localhost:3000

يمكنك أيضًا التحقق مما إذا كانت هناك أي عمليات ruby تعمل:

ps -ef | grep ruby

يمكن لأداة netstat إخبارك بالعمليات التي تستمع على أي منافذ. على سبيل المثال، إذا قمت بتشغيل خادم ويب بايثون بسيط مثل هذا:

$ python3 -m http.server 8099
Serving HTTP on 0.0.0.0 port 8099 (http://0.0.0.0:8099/) ...

ثم قم بتشغيل netstat:

$ netstat -tlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Address   State    PID/Program name
tcp        0      0 0.0.0.0:8099     0.0.0.0:*         LISTEN   2511478/python3
...

هذا يخبرني أن المعرف 2511478 يستمع على المنفذ 8099 على جميع الواجهات (0.0.0.0 تعني “جميع الواجهات”). للحصول على معلومات أكثر قليلاً حول تلك العملية:

$ ps -fp 2511478
UID          PID    PPID  C STIME TTY          TIME CMD
simon    2511478 1250783  0 09:53 pts/11   00:00:00 python3 -m http.server 8099
3 إعجابات

مرحبًا @simonk،

شكرًا لك على معلوماتك! إنها مفيدة للغاية. بالإضافة إلى ذلك، لقد انتقلت بالفعل إلى docker-container بهذه الطريقة.
سأحاول المزيد على discourse. أنا متحمس جدًا لذلك.

شكرًا مرة أخرى!

مع خالص التحية،
Chieh

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

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.