यहां खेलने के लिए कम से कम तीन अलग-अलग घटक हैं, जिनमें से प्रत्येक को सही ढंग से कॉन्फ़िगर करने की आवश्यकता है।
बाध्यकारी पता
जब नेटवर्क कनेक्शन प्राप्त करने के लिए रेल (या अन्य सर्वर एप्लिकेशन) खुलता है, तो यह एक आईपी और पोर्ट दोनों के लिए बाध्य होगा। यदि इनकमिंग अनुरोध इन दोनों से मेल नहीं खाता है, तो यह कनेक्शन स्वीकार नहीं करेगा। से rails server --help
:
Usage: rails server [mongrel, thin etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=IP Binds Rails to the specified IP.
Default: localhost
...
इसलिए डिफ़ॉल्ट रूप से, रेल केवल अपने localhost
(लूपबैक) नेटवर्क एडेप्टर (जिसे कहा जाता है lo
) को भेजे गए अनुरोधों को स्वीकार करेगी । चूँकि यह अडैप्टर केवल एक ही कंप्यूटर के भीतर से पहुँचा जा सकता है, यह केवल स्वीकार किए जाने वाले अनुरोध ही डेबियन वीएम के भीतर से होगा: परीक्षण के लिए अच्छा और सुरक्षित, लेकिन उत्पादन के लिए उपयोगी नहीं है, या एक अलग कंप्यूटर से परीक्षण भी नहीं है।
यदि आप चाहते हैं कि आपकी रेल किसी अन्य कंप्यूटर (आपके विंडोज 7 होस्ट सहित) से सुलभ हो, तो आपको रेल को यह बताने के लिए बाध्य करना होगा कि आईपी एड्रेस जो भी बाहर से सुलभ हो (नीचे देखें)।
हालांकि, एक आसान तरीका यह है कि रेल को विशेष आईपी पते से बांधने के लिए कहा जाए 0.0.0.0
, जिसका अर्थ है किसी भी नेटवर्क एडेप्टर । तो, अपने रेल सर्वर को इस तरह शुरू करना:
rails server -p 80 -b 0.0.0.0
आपकी वेबसाइट को किसी ऐसे व्यक्ति के लिए सुलभ बना देगा जो आपके वीएम को नेटवर्क पर देख सकता है।
यह संभावना है कि क्या अभी भी आपको गड़बड़ कर दिया है, भले ही आपके पास अन्य दो घटक काम कर रहे हों।
वीएम आईपी एड्रेस
आपको अपने ब्राउज़र को डेबियन आभासी मशीन पर इंगित करने की आवश्यकता है, जो कि अपना स्वयं का असतत कंप्यूटर है।
अंगूठे का नियम localhost
यह है कि यह हमेशा एक ही कंप्यूटर को संदर्भित करता है। हालाँकि, नेटवर्किंग उद्देश्यों के लिए, आपका डेबियन वीएम अपना अलग कंप्यूटर है। यदि आप अपने विंडोज 7 होस्ट में एक वेब ब्राउज़र का उपयोग कर रहे हैं, localhost
तो हमेशा अपने विंडोज 7 को देखें और कुछ नहीं।
आपके पास दो विकल्प हैं:
वर्चुअलबॉक्स वीएम एडॉप्टर को ब्रिज मोड पर सेट करें (जैसा कि आपने अपने प्रश्न में उल्लेख किया है)। यह आपके डेबियन को सीधे आपके विंडोज 7 होस्ट के रूप में उसी बाहरी / होम / वर्क नेटवर्क पर डाल देगा। फिर आप रन करके अपने डेबियन वीएम का आईपी निर्धारित कर सकते हैं ifconfig
। अपने eth0
या eth<something>
एडाप्टर के आईपी के लिए देखें । इसे अपने ब्राउज़र के एड्रेस बार में प्लग करें।
एक नैट अडैप्टर और वर्चुअलबॉक्स पोर्ट का प्रयोग करें । IMO यह अधिक जटिल है।
डेबियन फ़ायरवॉल
जब से मैंने डेबियन पर काम किया है तब से कुछ समय हो गया है, इसलिए मुझे नहीं पता कि मौजूदा चूक क्या हैं, लेकिन अगर उपरोक्त दो चीजें काम नहीं करती हैं, तो यह देखने लायक हो सकता है। यदि डेबियन एक फ़ायरवॉल चला रहा है, तो आपको किसी अन्य मशीन से एक्सेस करने के लिए किसी भी पोर्ट को खोलने की आवश्यकता होगी।
उम्मीद है की यह मदद करेगा :)