मैं वर्तमान में एक प्रोजेक्ट पर काम कर रहा हूं और मैं इसे दो लैपटॉप पर घर पर टेस्ट करना चाहूंगा जहां एक लैपटॉप दूसरे पर लोकलहोस्ट से कनेक्ट होता है। मैं XAMPP का उपयोग कर रहा हूं। मैं यह कैसे करु?
मैं वर्तमान में एक प्रोजेक्ट पर काम कर रहा हूं और मैं इसे दो लैपटॉप पर घर पर टेस्ट करना चाहूंगा जहां एक लैपटॉप दूसरे पर लोकलहोस्ट से कनेक्ट होता है। मैं XAMPP का उपयोग कर रहा हूं। मैं यह कैसे करु?
जवाबों:
यह निश्चित रूप से संभव है। हम यहां अपाचे के साथ एक सामान्य मामला लेंगे।
मान लें कि आप एक बड़े Symfony2 फैन हैं और आप अपनी सिम्फनी वेबसाइट http://symfony.local/
को 4 अलग-अलग कंप्यूटरों (अपनी वेबसाइट को होस्ट करने वाले मुख्य, साथ ही एक मैक, एक विंडोज और एक लिनक्स डिस्ट्रो कनेक्टेड (वायरलेस या नहीं) से एक्सेस करना चाहेंगे। मुख्य कंप्यूटर।
1 वर्चुअल होस्ट सेट करें :
आपको सबसे पहले अपनी अपाचे httpd-vhosts.conf
फाइल में एक वर्चुअल होस्ट सेट करना होगा । पर XAMP , तो आप इस फ़ाइल यहाँ पा सकते हैं: C:\xampp\apache\conf\extra\httpd-vhosts.conf
। पर MAMP , तो आप इस फ़ाइल यहाँ पा सकते हैं: Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
। यह चरणsymfony.local
अनुरोधों को संभालने के लिए आपके कंप्यूटर पर वेब सर्वर तैयार करता है । आपको अपनी वेबसाइट के रूट / मुख्य फ़ोल्डर के साथ-साथ वर्चुअल होस्ट का नाम प्रदान करना होगा। ऐसा करने के लिए, उस फ़ाइल के अंत में निम्न पंक्ति जोड़ें। DocumentRoot
जहाँ भी आपका मुख्य फ़ोल्डर है, आपको उसे बदलना होगा । यहाँ मैंने /Applications/MAMP/htdocs/Symfony/
अपनी वेबसाइट के मूल के रूप में लिया है ।
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
ServerName symfony.local
</VirtualHost>
2 अपनी होस्ट फ़ाइल कॉन्फ़िगर करें :
क्लाइंट (उस मामले में आपका ब्राउज़र) को समझने के लिए कि symfony.local
वास्तव में क्या मतलब है, आपको अपने कंप्यूटर पर होस्ट्स फ़ाइल को संपादित करने की आवश्यकता है। हर बार जब आप अपने ब्राउज़र में एक URL टाइप करते हैं, तो आपका कंप्यूटर यह समझने की कोशिश करता है कि इसका क्या मतलब है! symfony.local
एक कंप्यूटर के लिए कुछ भी मतलब नहीं है। इसलिए यह नाम symfony.local
को एक आईपी पते पर हल करने की कोशिश करेगा । यह पहली बार आपके कंप्यूटर पर होस्ट्स फ़ाइल को देखने के द्वारा करेगा, यह देखने के लिए कि क्या वह एड्रेस बार में आपके द्वारा टाइप किए गए आईपी पते से मेल खा सकता है। यदि यह नहीं हो सकता है, तो यह DNS सर्वर से पूछेगा । यहाँ पर ट्रिक यह है कि अपने होस्ट्स फाइल को निम्नलिखित में जोड़ें।
/private/etc/hosts
;/etc/hosts
;\Windows\system32\private\etc\hosts
;\Windows\system32\drivers\etc\hosts
;\Windows\system32\drivers\etc\hosts
;Hosts file
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1 symfony.local
अब से, हर बार आप इस कंप्यूटर पर symfony.local टाइप करते हैं, आपका कंप्यूटर symfony.local से कनेक्ट करने के लिए लूपबैक इंटरफ़ेस का उपयोग करेगा। यह समझ जाएगा कि आप लोकलहोस्ट (127.0.0.1) पर काम करना चाहते हैं।
3 symfony.local
दूसरे कंप्यूटर से पहुंच :
हम अंत में आपके मुख्य प्रश्न पर आते हैं जो है:
अब मैं अपनी वेबसाइट को दूसरे कंप्यूटर के माध्यम से कैसे एक्सेस कर सकता हूं?
खैर अब यह आसान है! हमें केवल अन्य कंप्यूटरों को यह बताने की आवश्यकता है कि वे कैसे खोज सकते हैं symfony.local
! हम इसे कैसे करते हैं?
3a वेबसाइट की मेजबानी करने वाले कंप्यूटर का आईपी पता प्राप्त करें :
हमें सबसे पहले उस कंप्यूटर पर आईपी पते को जानना होगा जो वेबसाइट को होस्ट करता है (एक जिसे हम शुरुआत से ही काम कर रहे हैं)। टर्मिनल में, मैक और लिनक्स प्रकार ifconfig |grep inet
पर, WINDOWS
प्रकार पर ipconfig
। मान लेते हैं कि इस कंप्यूटर का IP पता 192.168.1.5 है ।
3b उस कंप्यूटर पर होस्ट फ़ाइल संपादित करें जिसे आप वेबसाइट से एक्सेस करने का प्रयास कर रहे हैं। :
फिर से, मैक पर , यह फ़ाइल अंदर है /private/etc/hosts
; LINUX पर , में /etc/hosts
; और WINDOWS पर , \Windows\system32\private\etc\hosts
(यदि आप WINDOWS 7 का उपयोग कर रहे हैं , तो यह फ़ाइल अंदर है \Windows\system32\drivers\etc\hosts
) .. चाल अब उस कंप्यूटर के आईपी पते का उपयोग करने के लिए है जिसे हम एक्सेस करने / बात करने की कोशिश कर रहे हैं:
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5 symfony.local
4 अंत में अपने ब्राउज़र में परिणामों का आनंद लें
अब आप अपने ब्राउज़र में जा सकते हैं और http://symfony.local
विभिन्न कंप्यूटरों पर अपनी वेबसाइट को खूबसूरती से देख सकते हैं! ध्यान दें कि आप एक ही रणनीति लागू कर सकते हैं यदि आप वर्चुअल बॉक्स के माध्यम से इंटरनेट एक्सप्लोरर पर अपनी वेबसाइट का परीक्षण करने के लिए एक ओएसएक्स उपयोगकर्ता हैं (यदि आप विंडोज कंप्यूटर का उपयोग नहीं करना चाहते हैं)। यह OSX पर अपने विंडोज / IE टेस्ट पर्यावरण क्राफ्टिंग में खूबसूरती से समझाया गया है ।
आप आश्चर्यचकित हो सकते हैं कि अपनी लोकलहोस्ट वेबसाइट को मोबाइल डिवाइस से कैसे एक्सेस करें। कुछ मामलों में, आप अपने डिवाइस पर होस्ट्स फ़ाइल (iPhone, iPad ...) को संशोधित करने में सक्षम नहीं होंगे (बाहर रखा गया जेलब्रेक)।
खैर, समाधान तब वेबसाइट की मेजबानी करने वाली मशीन पर एक प्रॉक्सी सर्वर स्थापित करना है और अपने iPhone से उस प्रॉक्सी से कनेक्ट करना है। यह वास्तव में बहुत अच्छी तरह से निम्नलिखित पदों में समझाया गया है और इसे स्थापित करने के लिए लंबा नहीं है:
एक मैक पर, मैं सिफारिश करूंगा: एक मोबाइल डिवाइस पर एक स्थानीय होस्टनाम का उपयोग करके मैक ओएस एक्स वेब साइट का परीक्षण करना: एक प्रॉक्सी के रूप में स्क्विडमैन का उपयोग करना । यह 100% मुफ्त समाधान है। कुछ लोग चार्ल्स को प्रॉक्सी सर्वर के रूप में भी इस्तेमाल कर सकते हैं लेकिन यह $ 50 है।
लिनक्स पर, आप स्क्वीड को प्रॉक्सी सर्वर के रूप में उपयोग करके ऊपर दिए गए मैक ओएस तरीके को अनुकूलित कर सकते हैं ।
विंडोज पर, आप फिडलर का उपयोग कर सकते हैं । निम्नलिखित पोस्ट में समाधान का वर्णन किया गया है: फिडलर के साथ आईफोन ट्रैफिक की निगरानी करना
@Dre। मैन्युअल रूप से होस्ट फ़ाइल को संपादित नहीं करके किसी अन्य कंप्यूटर से वेबसाइट तक पहुंचने का कोई संभावित तरीका? मान लीजिए कि मेरे पास 100 कंप्यूटर हैं जो वेबसाइट तक पहुंचना चाहते हैं
यह एक दिलचस्प सवाल है, और जैसा कि यह ओपी प्रश्न से संबंधित है, मुझे मदद करने दें।
आपको अपने नेटवर्क पर एक बदलाव करना होगा ताकि हर मशीन को पता चल सके कि आपकी वेबसाइट कहाँ पर होस्ट की गई है। अधिकांश रोज़र राउटर ऐसा नहीं करते हैं, इसलिए आपको अपने स्वयं के DNS सर्वर को अपने नेटवर्क पर चलाना होगा ।
आइए दिखाते हैं कि आपके पास एक राउटर (192.168.1.1) है। इस राउटर में एक डीएचसीपी सर्वर होता है और नेटवर्क पर 100 मशीनों को आईपी एड्रेस आवंटित करता है।
अब, मान लें कि आपके पास, ऊपर, उसी नेटवर्क पर, एक मशीन है 192.168.1.5
जिस पर आपकी वेबसाइट है। हम उस मशीन को कॉल करेंगे pompei।
$ echo $HOSTNAME
pompei
पहले की तरह ही, उस मशीन pompeiपर 192.168.1.5
रन एक HTTP सर्वर जो अपनी वेबसाइट में कार्य करता है symfony.local
।
प्रत्येक मशीन के लिए यह जानना आवश्यक symfony.local
है कि pompeiअब हमें होस्ट किए जाने वाले नेटवर्क पर एक कस्टम DNS सर्वर की आवश्यकता होगी, जो जानता है कि कहां symfony.local
होस्ट किया गया है। नेटवर्क पर डिवाइस तब pompeiआंतरिक रूप से दिए गए डोमेन नामों को हल करने में सक्षम होंगे ।
Step 1: DNS Server
अपने नेटवर्क पर एक DNS सर्वर सेट-अप करें। चलो यह pompeiसुविधा के लिए है और dnsmasq की तरह कुछ का उपयोग करें ।
Dnsmasq Domain Name System (DNS) फारवर्डर , ... प्रदान करता है ।
हम pompeiDNS अनुरोधों को संभालने Hey, pompei, where is symfony.local
और प्रतिक्रिया देने के लिए DNSmasq चलाना चाहते हैं Hey, sure think, it is on 192.168.1.5 but don't take my word for it
।
Dnsmasq स्थापित करने के लिए आगे बढ़ें, dnsmasq कॉन्फ़िगरेशन फ़ाइल आमतौर /etc/dnsmasq.conf
पर आपके वातावरण पर निर्भर करती है।
मैं व्यक्तिगत रूप से no-resolv
और Google सर्वर का उपयोग करता हूं server=8.8.8.8 server=8.8.8.4
।
* नोट: * हमेशा DNSmasq को पुनः आरंभ करें यदि कोई परिवर्तन नहीं होता है / तो / फाइल को होस्ट करता है अन्यथा प्रभावी नहीं होगा।
Step 2: Firewall
काम करने के लिए, pompeiआने वाले और बाहर जाने वाले 'डोमेन' पैकेट की अनुमति देने की आवश्यकता है, जो 53 से और पोर्ट करने के लिए जा रहे हैं। ये DNS पैकेट हैं और अगर pompeiइन्हें अनुमति नहीं दी जाती है, तो आपके DNS सर्वर के लिए बिल्कुल भी कोई रास्ता नहीं है। आगे बढ़ो और उस पोर्ट 53 को खोलें। linux पर, आप इसके लिए क्लासिकल रूप से उपयोग करेंगे iptables
।
मुझे जो भी मिला है उसे साझा करना, लेकिन आपको अपने फ़ायरवॉल में गोता लगाने और सब कुछ अच्छी तरह से समझने की संभावना होगी।
#
# Allow outbound DNS port 53
#
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
Step 3: Router
अपने राउटर को बताएं कि आपका डीएनएस सर्वर अभी चालू 192.168.1.5
है। अधिकांश समय, आप बस अपने राउटर में लॉगिन कर सकते हैं और इसे मैन्युअल रूप से बहुत आसानी से बदल सकते हैं।
बस हो गया, आप एक मशीन पर कर रहे हैं और के लिए पूछना जब symfony.local
, यह आपके पूछेंगे DNS सर्वर जहां symfony.local
होस्ट किया गया है, और जैसे ही यह DNS सर्वर से अपने जवाब प्राप्त हुआ है, तो उचित भेज देंगे HTTP अनुरोध करने के लिए pompeiपर 192.168.1.5
।
मैं आपको इसके साथ खेलने देता हूं और सवारी का आनंद लेता हूं। ये 2 चरण मुख्य दिशानिर्देश हैं, इसलिए आपको डिबग करना होगा और कुछ घंटे बिताने होंगे अगर यह पहली बार हो। मान लें कि यह थोड़ा अधिक उन्नत नेटवर्किंग है, प्राथमिक DNS सर्वर, द्वितीयक DNS सर्वर आदि हैं । सौभाग्य!
host
फ़ाइल को मैन्युअल रूप से संपादित नहीं करके किसी अन्य कंप्यूटर से वेबसाइट तक पहुंचने का कोई भी संभव तरीका ?
एक ही वायरलेस और पूरे इंटरनेट पर दोनों लैपटॉप पर परीक्षण के लिए आप http://localhost.run/ या https://brok.com/ जैसी सेवा का उपयोग कर सकते हैं
बशर्ते दोनों मशीनें एक ही कार्यसमूह में हों, cmd.exe
जिस मशीन से आप कनेक्ट करना चाहते हैं , उस पर खोलें ipconfig
और IPv4 Address
लाइन में आईपी को नोट करें ।
फिर, जिस मशीन से आप कनेक्ट करना चाहते हैं, उसका उपयोग करें http:// + the IP of the target machine
।
इससे हो जाना चाहिए।
Mac OS X पर:
टर्मिनल में, ifconfig | grep 192.
अपनी मशीन के आंतरिक आईपी को चालू नेटवर्क पर प्राप्त करने के लिए चलाएं । यह कुछ इस तरह हो सकता है192.168.1.140
एक सर्वर शुरू करें। उदाहरण के लिए, node server.js
कुछ पोर्ट पर सर्वर शुरू कर सकता है।
अपने फ़ोन पर, 192.168.1.140:3000
आपके सर्वर पर जो भी पोर्ट चल रहा है, उस पर जाएँ।
इस उपकरण ने मुझे बहुत बचाया, क्योंकि मेरे पास अपनी मशीन पर कोई व्यवस्थापक अनुमति नहीं है और पहले से ही नोडज स्थापित है। किसी कारण से मेरे नेटवर्क पर कॉन्फ़िगरेशन मुझे ब्राउज़र पर आईपी इंगित करने वाली अन्य मशीनों तक पहुंच नहीं देता है।
# Using a local.dev vhost
$ browser-sync start --proxy
# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001
# Using a localhost address
$ browser-sync start --proxy localhost:8001
# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1
browser-sync start --proxy localhost:3000
एक अलग शेल में इस्तेमाल किया । एक अन्य डिवाइस पर, जो मेरे द्वारा टाइप किए गए नेटवर्क से जुड़ा है: ${computerIP}:3000
लेकिन मुझे कुछ भी नहीं दिख रहा है। मुझे लगता है कि मुझे और कुछ प्रदान करना चाहिए।
यह हो सकता है कि आपके फ़ायरवॉल आपको लोकलहोस्ट के वेबसर्वर तक पहुँचने से रोक रहे हों।
यदि आवश्यक हो तो अपने दोनों कंप्यूटरों के इंटरनेट सुरक्षा एंटीवायरस नेटवर्क सुरक्षा के आईपी पते को सुरक्षित आईपी पते के रूप में रखें।
कैसे अपने विंडोज़ पीसी के आईपी पते को खोजने के लिए: प्रारंभ> में (रन) के प्रकार: cmd (दर्ज)
(यह खोलता है ब्लैक बॉक्स कमांड प्रॉम्प्ट)
प्रकार में ipconfig (दर्ज)
चलो का कहना है कि अपने अपाचे या आईआईएस वेब सर्वर अपने पीसी पर स्थापित किया गया है : 192.168.0.3
और आप अपने लैपटॉप के साथ अपने वेबसर्वर का उपयोग करना चाहते हैं। (लैपटॉप का IP 192.168.0.5 है)
आपके पीसी पर आप अपने वेबसर्वर पर अपने डेटा तक पहुँचने के लिए अपने फ़ायरफ़ॉक्स या इंटरनेट इप्लॉयर ब्राउज़र के अंदर http: // localhost / टाइप करते हैं।
अपने लैपटॉप पर आप अपने पीसी पर अपने वेबसर्वर का उपयोग करने के लिए http://192.168.0.3/ टाइप करते हैं।
काम करने के लिए इन सभी चीजों के लिए आपको एक वेबसर्वर सही ढंग से स्थापित करना होगा (जैसे IIS, Apache, XAMP, WAMP आदि)।
यदि यह काम नहीं करता है, तो अपने लैपटॉप से अपने पीसी को पिंग करने का प्रयास
करें: अपने लैपटॉप पर कमांड प्रॉम्प्ट खोलें: प्रारंभ> cmd (Enter)
पिंग 192.168.1.3 (दर्ज करें)
यदि पिंगिंग विफल हो जाता है, तो फ़ायरवॉल आपके कनेक्शन या आपके नेटवर्क को अवरुद्ध कर रहा है केबल लगाना दोषपूर्ण है। अपने मॉडेम या नेटवर्क स्विच और अपनी मशीनों को पुनरारंभ करें।
चैट प्रोग्राम जैसे करीबी प्रोग्राम जो आपके पोर्ट का उपयोग कर रहे हैं।
आप एक भिन्न पोर्ट संख्या: http: 192.168.0.3: 80 या http: 192.168.0.3: 81 या किसी भी यादृच्छिक संख्या को अंत में आज़मा सकते हैं
यह एक साइड नोट है यदि कोई अभी भी ऊपर दिए गए चरण के माध्यम से किसी अन्य डिवाइस से लोकलहोस्ट का उपयोग नहीं कर सकता है। यह अपाचे पोर्ट्सकॉन्फ को स्थानीय रूप से (127.0.0.1) परोसने के लिए कॉन्फ़िगर किया गया है और बाहर नहीं।
निम्नलिखित की जाँच करें, (ubuntu apache2 के लिए)
$ cat /etc/apache2/ports.conf
यदि निम्नलिखित सेट है,
NameVirtualHost *:80
Listen 127.0.0.1:80
फिर इसे डिफ़ॉल्ट मान में बदलें
NameVirtualHost *:80
Listen 80