WampServer में Virtual Host कैसे बनाएं
WAMPServer 3 ने इस प्रक्रिया को बहुत आसान बना दिया है!
WAMPServer के भाग के रूप में दी गई उपयोगिता से आप लगभग सब कुछ कर सकते हैं।
अपना प्रोजेक्ट समेटने के लिए अंदर एक फ़ोल्डर बनाएँ। यह C:\wamp\www\
निर्देशिका के अंतर्गत या पूरी तरह से अलग फ़ोल्डर में हो सकता है C:\websites
।
आपके द्वारा चुने गए स्थान के अंदर C:\websites\project1\www
या के नीचे एक फ़ोल्डर बनाएँc:\wamp\www\project1\www
अब लोकलहोस्ट को खोलें wampmanager->localhost
और Add a Virtual Host
होमपेज पर TOOLS सेक्शन के तहत लिंक पर क्लिक करें ।
आपको इस तरह एक पेज दिखाई देगा:
प्रत्येक फ़ील्ड के ऊपर दिए गए निर्देशों के अनुसार फ़ील्ड भरें
वर्चुअल होस्ट कॉन्फ़िगरेशन आपके लिए बनाया गया होगा।
अब आपको DNS कैश को पुनरारंभ करना होगा। आप इसे इस तरह के wampmanager मेनू से कर सकते हैं right click wampmanager->Tools->Restart DNS
। डीएनएस कैश को फिर से शुरू किया जाएगा और फिर अपाचे को भी बंद कर दिया जाएगा। जब wampmanager आइकन फिर से हरा हो जाता है तो सब पूरा हो जाता है।
अब आपको एक साधारण index.php
फ़ाइल बनानी होगी या अपनी साइट को अपने द्वारा बनाए गए फ़ोल्डर में स्थापित करना होगा ।
अपने VH को यह कहते हुए मान लिया गया project.dev
कि आपको WAMPServer होमपेज के Your Virtual Hosts सेक्शन के तहत उस नाम को देखना चाहिए ।
आप इस मेनू से साइट लॉन्च कर सकते हैं, या एड्रेस बार ईजी project1.dev
और साइट शॉल लॉन्च में नए डोमेन नाम का उपयोग कर सकते हैं ।
पुराने WAMPServer 2.5 तंत्र, या यदि आप यह सब मैन्युअल रूप से करना चाहते हैं
WampServer 2.5 और इसके बाद के संस्करण में अवधारणा में बदलाव आया है और इस बदलाव का एक अच्छा कारण है!
WampServer में अब इसे अपनी प्रत्येक परियोजना के लिए एक वर्चुअल होस्ट बनाने के लिए प्रोत्साहित किया जाता है, भले ही आप उन्हें किसी \wamp\www\subfolder
संरचना में रखते हों।
वर्चुअल होस्ट्स प्रलेखन
वर्चुअल होस्ट उदाहरण
WampServer होम पेज ( \wamp\www\index.php
) अब आपसे यह उम्मीद करता है कि आपने अपनी सभी परियोजनाओं के लिए एक वर्चुअल होस्ट बनाया है और इसलिए यदि आप ऐसा करते हैं तो केवल ठीक से काम करेंगे।
इतिहास
PHP Apache और MySQL सीखने के लिए WampServer का उपयोग करने वाले शुरुआती लोगों के लिए जीवन को आसान बनाने के लिए यह सुझाव दिया गया था कि आप फ़ोल्डर के तहत सबफ़ोल्डर बनाते हैं \wamp\www\
।
wamp
|
|
|
|
ये सबफ़ोल्डर तब WampServer होमपेज में 'आपकी परियोजनाओं' नामक एक मेनू के तहत लिंक के रूप में दिखाई देंगे और इन लिंक में एक लिंक होगा localhost/subfoldername
।
केवल सरल ट्यूटोरियल के लिए स्वीकार्य है
यह पूर्ण शुरुआत के लिए जीवन को आसान बनाता है, और PHP कोडिंग सीखने के लिए निम्नलिखित ट्यूटोरियल के लिए उदाहरण के लिए पूरी तरह से स्वीकार्य था। हालाँकि, इसका उपयोग तब कभी नहीं किया गया था जब आप एक वास्तविक वेब साइट विकसित कर रहे हों जिसे आप बाद में अपने लाइव होस्टेड सर्वर पर कॉपी करना चाहते हैं। वास्तव में यदि आप इस तंत्र का उपयोग करते हैं तो यह अक्सर समस्याओं का कारण बनता है क्योंकि लाइव साइट कॉन्फ़िगरेशन आपके विकास कॉन्फ़िगरेशन से मेल नहीं खाएगा।
असली वेबसाइट के विकास के लिए समस्या ।
इसका कारण निश्चित रूप से यह है कि wamp के लिए डिफ़ॉल्ट DocumentRoot सेटिंग है
DocumentRoot "c:/wamp/www/"
इस बात की परवाह किए बिना कि आपके सबफ़ोल्डर को क्या कहा गया था। यह उल्लेख है कि अक्सर संरचना या आपकी साइट को चलाने वाले PHP कोड का उपयोग किया जाता है जब आपके विकास पर चलने के दौरान अलग-अलग जानकारी मिलती है WampServer एक लाइव होस्ट किए गए सर्वर पर चलने पर उसे क्या प्राप्त होगा, जहां DocumentRoot कॉन्फ़िगरेशन वेबसाइट के शीर्ष पर स्थित फ़ोल्डर को इंगित करता है। फ़ाइल पदानुक्रम। इस तरह के कोड कई फ्रेमवर्क और सीएमएस के उदाहरण और वर्डप्रेस और जुमला आदि में मौजूद हैं।
उदाहरण के लिए
हम कहते हैं कि हमारे पास एक प्रोजेक्ट है जिसे प्रोजेक्ट 1 कहा जाता है wamp\www\project1
और गलत तरीके से चलाया जाता हैlocalhost/project1/index.php
यह वही होगा जो कुछ PHP कमांड द्वारा विचाराधीन होगा:
$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www
अब अगर हमने वर्चुअल होस्ट परिभाषा का उपयोग करके उस साइट को सही ढंग से परिभाषित किया था और इसे http://project1
WAMPServer devlopment साइट पर परिणाम के रूप में चलाया, तो लाइव होस्ट किए गए परिवेश में प्राप्त किए गए मेल से मेल खाएगा।
$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1
अब यह अंतर पहली बार में मामूली लग सकता है, लेकिन यदि आप वर्डप्रेस जैसे फ्रेमवर्क का उपयोग करना चाहते थे या उदाहरण के लिए सीएमएस जैसे जूमला में से एक, तो यह आपकी साइट को लाइव सर्वर पर ले जाने पर समस्या उत्पन्न कर सकता है।
WampServer में Virtual Host कैसे बनाएं
वास्तव में यह मूल रूप से किसी भी wandows अपाचे सर्वर के लिए समान रूप से काम करना चाहिए, केवल उन अंतरों के साथ जहां आप अपाचे कॉन्फ़िगरेशन फ़ाइलों को पा सकते हैं।
अपाचे में अपना पहला वर्चुअल होस्ट बनाने के लिए 3 चरण हैं, और केवल 2 यदि आप पहले से ही परिभाषित हैं।
- वर्चुअल होस्ट परिभाषा बनाएँ
- अपने नए डोमेन नाम को HOSTS फ़ाइल में जोड़ें।
- वर्चुअल होस्ट परिभाषा फ़ाइल शामिल httpd.conf में लाइन को रद्द करें।
चरण 1 , वर्चुअल होस्ट परिभाषा बनाएँ
उस फ़ाइल को संपादित करें जिसे httpd-hosts.conf
WampServer के लिए कहा जाता है
\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf
(अपाचे संस्करण संख्या भिन्न हो सकती है, जारी रखने से पहले मस्तिष्क संलग्न करें)
यदि आप पहली बार इस फ़ाइल को संपादित करते हैं, तो डिफ़ॉल्ट उदाहरण कोड को हटा दें, यह किसी काम का नहीं है।
मैं मान रहा हूं कि हम प्रोजेक्ट 1 नामक एक साइट के लिए एक परिभाषा बनाना चाहते हैं जो अंदर रहती है
\wamp\www\project1
बहुत महत्वपूर्ण है, पहले हमें यह सुनिश्चित करना चाहिए कि लोकलहोस्ट अभी भी काम करता है इसलिए यह पहली VHOST परिभाषा है जिसे हम इस फाइल में डालेंगे।
<VirtualHost *:80>
DocumentRoot "c:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "c:/wamp/www">
Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>
</VirtualHost>
अब हम अपनी परियोजना को परिभाषित करते हैं: और निश्चित रूप से आप अपनी प्रत्येक परियोजना के लिए करते हैं क्योंकि आप एक नई शुरुआत करते हैं।
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/project1"
ServerName project1
<Directory "c:/wamp/www/project1">
Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>
</VirtualHost>
नोट: कि प्रत्येक वर्चुअल होस्ट अपने स्वयं के DocumentRoot
परिभाषित के रूप में। कई अन्य पैरामीटर भी हैं जो आप एक वर्चुअल होस्ट परिभाषा में जोड़ सकते हैं, अपाचे प्रलेखन की जांच कर सकते हैं।
एक तरफ छोटा
जिस तरह से Apache में वर्चुअल होस्ट काम करता है: इस फ़ाइल में पहली परिभाषा भी डिफ़ॉल्ट साइट होगी, इसलिए ब्राउज़र में उपयोग किया जाने वाला डोमेन नाम किसी भी वास्तव में परिभाषित वस्तुतः होस्ट किए गए डोमेन से मेल नहीं खाता है, जिससे फ़ाइल में पहला डोमेन लोकलहोस्ट हो जाएगा। यह वह साइट है जो हैक की कोशिश के दौरान आपके आईपी पते का उपयोग करने पर भरी हुई है। इसलिए यदि हम यह सुनिश्चित करते हैं कि इस डोमेन के लिए अपाचे सुरक्षा ALWAYS SET TO है
Require local
बाहरी पते से कोई भी आकस्मिक हैक एक त्रुटि प्राप्त करेगा और आपके पीसी में नहीं आएगा, लेकिन क्या आपको एक डोमेन को मिस करना चाहिए जिसे आपको WampServer होमपेज दिखाया जाएगा, क्योंकि आप WampServer और therfore के समान पीसी पर हैं local
।
चरण 2 :
अपने नए डोमेन नाम को HOSTS फ़ाइल में जोड़ें। अब हमें उस डोमेन नाम को जोड़ने की जरूरत है जो हमने HOSTS फ़ाइल में वर्चुअल होस्ट परिभाषा में उपयोग किया है ताकि विंडोज़ को पता चल जाए कि उसे कहां खोजना है। यह DNS A रिकॉर्ड बनाने के लिए उपयुक्त है, लेकिन यह केवल इस विशिष्ट पीसी पर इस मामले में दिखाई देता है।
संपादित करें C:\windows\system32\drivers\etc\hosts
फ़ाइल का कोई विस्तार नहीं है और उसे इस तरह रहना चाहिए। नोटपैड के लिए देखें, क्योंकि .txt
आपके पास बेहतर संपादक नहीं होने पर यह कोशिश कर सकता है और एक्सटेंशन जोड़ सकता है । मेरा सुझाव है कि आप नोटपैड ++, इसके मुफ्त और एक बहुत अच्छे संपादक को डाउनलोड करें।
इसके अलावा यह एक संरक्षित फ़ाइल है, इसलिए आपको इसे व्यवस्थापक विशेषाधिकारों के साथ संपादित करना होगा, इसलिए रन फॉर एडमिनिस्ट्रेटर मेनू विकल्प का उपयोग करके आपको संपादक लॉन्च करें ।
जब आप इन संपादन को पूरा कर चुके हों तो मेजबानों की फाइल इस तरह दिखनी चाहिए
127.0.0.1 localhost
127.0.0.1 project1
::1 localhost
::1 project1
ध्यान दें कि आपके पास IPV4 लूपबैक पते 127.0.0.1
और IPV6 लूपबैक पते के लिए भी यहाँ परिभाषाएँ होनी चाहिए ::1
क्योंकि Apache अब IPV6 है और ब्राउज़र IPV4 या IPV6 या दोनों का उपयोग करेगा। मुझे नहीं पता कि यह कैसे तय करता है कि किसका उपयोग करना है, लेकिन इसका उपयोग तब किया जा सकता है जब आपके पास आईपीवी 6 स्टैक चालू हो, और अधिकांश विंडो ओएस एक्सपी एसपी 3 के रूप में हो।
अब हमें अपने डोमेन नाम कैश को रिफ्रेश करने के लिए विंडो को बताना होगा, इसलिए रन कमांड को फिर से एडमिनिस्ट्रेटर मेनू विकल्प के रूप में उपयोग करके एक कमांड विंडो लॉन्च करें, और निम्नलिखित करें।
net stop dnscache
net start dnscache
यह विंडोज़ को अपने डोमेन नाम कैश को साफ़ करने और इसे फिर से लोड करने के लिए मजबूर करता है, इसे पुनः लोड करने में यह HOSTS फ़ाइल को फिर से पढ़ेगा ताकि अब इसे डोमेन के बारे में पता चले project1
।
चरण 3 : httpd.conf में वह रेखा शामिल करें जिसमें वर्चुअल होस्ट परिभाषा फ़ाइल शामिल है।
अपने httpd.conf को संपादित करें, यह सुनिश्चित करने के लिए कि आपने सही फ़ाइल संपादित की है wampmanager.exe मेनू का उपयोग करें।
Httpd.conf में इस लाइन को खोजें
और बस #
उस लाइन को अनकंफर्ट करने के लिए हटा दें ।
अपाचे चलाने वाले आप में इस परिवर्तन को सक्रिय करने के लिए हमें अब अपाचे सेवा को रोकना और पुनः आरंभ करना होगा।
wampmanager.exe -> Apache -> Service -> Restart Service
अब यदि सिस्टम ट्रे में WAMP आइकन फिर से GREEN नहीं जाता है, तो इसका मतलब है कि आपने \wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf
फ़ाइल में कुछ गलत किया है ।
यदि ऐसा है तो यह पता लगाने के लिए एक उपयोगी तंत्र है कि क्या गलत है। यह अपाचे exe (httpd.exe) की एक सुविधा का उपयोग करता है ताकि इसकी कॉन्फिग फाइल्स की जाँच की जा सके और फ़ाइल नाम और लाइन नंबरों की त्रुटियों की रिपोर्ट की जा सके।
एक कमांड विंडो लॉन्च करें।
cd \wamp\bin\apache\apache2.4.9\bin
httpd -t
इसलिए त्रुटियों को ठीक करें और आउटपुट प्राप्त होने तक फिर से पुन: प्रयास करें
Syntax OK
अब एक बात और है।
वास्तव में wampmanager मेनू सिस्टम पर 2 नए मेनू आइटम हैं। एक 'माय प्रोजेक्ट्स' कहलाता है जो डिफ़ॉल्ट रूप से चालू होता है। और एक दूसरा, जिसे 'माई वर्चुअल होस्ट्स' कहा जाता है , जो डिफ़ॉल्ट रूप से सक्रिय नहीं है।
'माई प्रोजेक्ट्स' \ wamp \ www निर्देशिका के किसी भी उप निर्देशिका को सूचीबद्ध करेगा और उस उप निर्देशिका में साइट को लॉन्च करने के लिए एक लिंक प्रदान करेगा। जैसा कि मैंने पहले कहा था, यह 'प्रोजेक्ट1` लॉन्च करता है और' लोकलहोस्ट / प्रोजेक्ट 1 'नहीं, इसलिए लिंक काम करने के लिए हमें इस लिंक को वास्तव में अपने ब्राउज़र में उस साइट को लॉन्च करने के लिए एक वर्चुअल होस्ट परिभाषा बनानी होगी, बिना वर्चुअल होस्ट परिभाषा के यह संभव है। कीवर्ड के रूप में साइट के नाम के लिए एक वेब खोज लॉन्च करें या बस ऐसी साइट पर लौटें जिसे कोई शर्त नहीं मिली।
'माई वर्चुअल होस्ट्स' मेनू आइटम थोड़ा अलग है। यह वर्चुअल होस्ट को परिभाषित करने के लिए उपयोग की जाने वाली फ़ाइल को खोजता है (हम एक मिनट में मिल जाएगा) और प्रत्येक सर्वरनाम पैरामीटर के लिए मेनू लिंक बनाता है जो इसे ढूंढता है और प्रत्येक के लिए एक मेनू आइटम बनाता है। एक बार जब हम \ wamp \ www फ़ोल्डर की उप निर्देशिकाओं के लिए वर्चुअल होस्ट परिभाषा बनाते हैं तो यह थोड़ा भ्रमित करने वाला लग सकता है, कुछ आइटम 'मेरे प्रोजेक्ट्स' मेनू और 'मेरे वर्चुअल होस्ट्स' मेनू के दोनों पर दिखाई देंगे।
मैं इस अन्य 'माई वर्चुअल होस्ट्स' मेनू को कैसे चालू करूं?
- यदि आप कोई गलती करते हैं, तो यह एक बहुत ही महत्वपूर्ण फ़ाइल है, \ wampmanager.tpl फ़ाइल का बैकअप बनाएं।
- \ Wamp \ wampmanager.tpl संपादित करें
- इस पैरामीटर को खोजें
;WAMPPROJECTSUBMENU
, '' [Menu.Left] 'सेक्शन में।
- इस नए पैरामीटर को
;WAMPVHOSTSUBMENU
या तो पैरामीटर से पहले या बाद में जोड़ें ;WAMPPROJECTSUBMENU
।
- फ़ाइल सहेजें।
- अब wampmanager आइकन पर राइट क्लिक करें, और 'रिफ्रेश' चुनें। यदि यह मेनू नहीं जोड़ता है, तो 'बाहर निकलें' और wampmanager को पुनरारंभ करें।
बड़ा नोट
नया मेनू केवल तभी दिखाई देगा जब आपके पास पहले से ही कुछ वर्चुअल होस्ट परिभाषित हों! अन्यथा आप तब तक कोई अंतर नहीं देखेंगे जब तक आप एक VHOST को परिभाषित नहीं करते।
अब अगर आप इसे इसके तार्किक विस्तार तक ले जाएं
अब आप अपने वेब साइट कोड को \wamp\
फ़ोल्डर संरचना के बाहर पूरी तरह से VHOST परिभाषा में DocumentRoot पैरामीटर को बदलकर स्थानांतरित कर सकते हैं । तो उदाहरण के लिए आप ऐसा कर सकते हैं:
वैंप डिस्क या किसी अन्य डिस्क पर एक फ़ोल्डर बनाएं (नेटवर्क ड्राइव से सावधान रहें, वे कुछ अधिक जटिल हैं)
D:
MD websites
CD websites
MD example.com
CD example.com
MD www
अब आप अपने साइट कोड की प्रतिलिपि बनाएँ या इसे \websites\example.com\www
फ़ोल्डर में बनाना शुरू करें और अपने VHOST को इस तरह परिभाषित करें:
<VirtualHost *:80>
DocumentRoot "d:/websites/example.com/www"
ServerName example.dev
ServerAlias www.example.dev
<Directory "d:/websites/example.com/www">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
php_flag display_errors Off
php_flag log_errors On
php_value max_upload_size 40M
php_value max_execution_time 60
php_value error_log "d:/wamp/logs/example_com_phperror.log"
</VirtualHost>
फिर इस नए विकास डोमेन को HOSTS फ़ाइल में जोड़ें:
127.0.0.1 localhost
::1 localhost
127.0.0.1 project1
::1 project1
127.0.0.1 example.dev
::1 example.dev
नोट: ServerName या ServerAlias का उपयोग करना एक अच्छा विचार नहीं है जो कि आपके लाइव डोमेन नाम के समान है, जैसे कि हमने example.com का उपयोग किया था जैसा कि ServerName का अर्थ है कि अब हम वास्तविक लाइव साइट से इसे प्राप्त नहीं कर सकते हैं। पीसी के रूप में यह example.com को डायरेक्ट करेगा 127.0.0.1 यानी यह पीसी और इंटरनेट पर नहीं है।
ALSO: देखें कि मैंने इस साइट को VHOST परिभाषाओं के भीतर से इंटरनेट से एक्सेस करने की अनुमति दी है, यह परिवर्तन केवल इस साइट पर लागू होगा और कोई अन्य नहीं। एक ग्राहक को एक घंटे के लिए अपने परिवर्तनों को देखने की अनुमति देने के लिए बहुत उपयोगी है और उन्हें लाइव सर्वर पर कॉपी किए बिना। इसका मतलब यह है कि हमें इस फ़ाइल को एडिट करने के लिए मैन्युअल रूप से इस एक्सेस को चालू और बंद करने की बजाय wampmanager पर ऑनलाइन / ऑफलाइन मेनू आइटम का उपयोग करना होगा।
इसके अलावा, मैंने PHP कॉन्फिगरेशन में कुछ संशोधन जोड़े हैं, फिर से यह केवल इस एक साइट पर लागू होगा। बहुत उपयोगी जब आप बनाए रखने के अन्य सभी साइटों के विपरीत विशिष्ट आवश्यकता वाली साइट को बनाए रखते हैं। मुझे लगता है कि हम इस्तेमाल किए गए मापदंडों से अनुमान लगा सकते हैं कि इसमें एक लंबा चलने वाला पृष्ठ है और यह बहुत बुरी तरह से लिखा गया है और पृष्ठ की भयानक गड़बड़ी के बिना ब्राउज़र पर प्रदर्शित होने वाली त्रुटियों के साथ नहीं चलेगा। मेरा विश्वास करो कि इस तरह की साइटें मौजूद हैं और लोग अभी भी चाहते हैं कि उन्हें बुरी तरह से बनाए रखा जाए । लेकिन इसका मतलब है कि हमें केवल इस विशिष्ट साइट के लिए इन मापदंडों को बदलना होगा और विश्व स्तर पर WampServer पर चलने वाली सभी वर्चुअल साइटों पर नहीं।