वैम्प सर्वर पर प्रोजेक्ट लिंक काम नहीं करते हैं


85

मैं एक मध्यम आकार के डेटाबेस और UI को चलाने के लिए दूसरे कंप्यूटर पर Wamp सर्वर स्थापित कर रहा हूं। मैं IIS को ब्लॉक करने और सर्वर को लोकलहोस्ट: 8080 में रूट करने में सफल रहा। लेकिन जब भी मैं अपने प्रोजेक्ट्स पर लोकलहोस्ट होमपेज से, www फाइल में एक्सेस करने की कोशिश करता हूं; मुझे पृष्ठ पर त्रुटि नहीं मिली है।

जब मैं लिंक के ऊपर मंडराता हूं तो निर्देशिका हमेशा "http: // ProjectFolderNameHere /" पर आती है। जब यह "http: // LocalHost: 8080 / ProjectFolderNameHere /" माना जाता है। लिंक को ठीक से काम करने के लिए मैं क्या कर सकता हूं?

मेरी मशीन विंडोज 7 होम संस्करण 64-बिट्स पर चलती है, और मेरे पास पहले से ही माइक्रोसॉफ्ट का आईआईएस अक्षम है।


क्या आप लोकलहोस्ट को एक्सेस कर सकते हैं: 8080 / index.html (यह मानकर कि आपके पास एक है)? वे लिंक कहाँ संग्रहीत हैं जो आपको उन टूटे हुए URL को दिखाते हैं? उन्हें किसने लिखा है? ऐसा लगता है जैसे उन लिंक को केवल बुरी तरह से लिखा गया है।
पैट्रिक

नहीं, लेकिन मैंने अपनी एक फ़ाइल से कनेक्ट करने की कोशिश की, यहाँ सभी आपको धन्यवाद देते हैं!
user3638431

यदि आपको कोई समाधान मिला, तो भविष्य के संदर्भ के लिए अपने प्रश्न का उत्तर दें :)
पैट्रिक

ठीक है तो मैंने जो किया वह मैंने पैट्रिक की सलाह के लिए किया, लेकिन इसके बजाय मैंने स्थानीयहोस्ट: 8080 / प्रोजेक्टफिलनेम में टाइप किया और आखिरकार अपने प्रोजेक्ट तक पहुंच पाया। मेरी समस्या अभी भी बनी हुई है लेकिन मुझे इसके चारों ओर एक रास्ता मिल गया है।
user3638431

वैसे मुझे लगता है कि आपके लिंक (आपके द्वारा क्लिक किए गए) गलत लिखे गए हैं। यदि आप उन लिंक्स पर अधिक प्रकाश डाल सकते हैं, तो आप उन पर 'क्लिक' करने से पहले कहां लिखे गए हैं, मैं आगे सहायता कर सकता हूं
पैट्रिक

जवाबों:


157

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
  |-- www
       |-- Chapter1
       |-- Chapter2
       |-- etc

ये सबफ़ोल्डर तब 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://project1WAMPServer devlopment साइट पर परिणाम के रूप में चलाया, तो लाइव होस्ट किए गए परिवेश में प्राप्त किए गए मेल से मेल खाएगा।

$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1

अब यह अंतर पहली बार में मामूली लग सकता है, लेकिन यदि आप वर्डप्रेस जैसे फ्रेमवर्क का उपयोग करना चाहते थे या उदाहरण के लिए सीएमएस जैसे जूमला में से एक, तो यह आपकी साइट को लाइव सर्वर पर ले जाने पर समस्या उत्पन्न कर सकता है।

WampServer में Virtual Host कैसे बनाएं

वास्तव में यह मूल रूप से किसी भी wandows अपाचे सर्वर के लिए समान रूप से काम करना चाहिए, केवल उन अंतरों के साथ जहां आप अपाचे कॉन्फ़िगरेशन फ़ाइलों को पा सकते हैं।

अपाचे में अपना पहला वर्चुअल होस्ट बनाने के लिए 3 चरण हैं, और केवल 2 यदि आप पहले से ही परिभाषित हैं।

  1. वर्चुअल होस्ट परिभाषा बनाएँ
  2. अपने नए डोमेन नाम को HOSTS फ़ाइल में जोड़ें।
  3. वर्चुअल होस्ट परिभाषा फ़ाइल शामिल httpd.conf में लाइन को रद्द करें।

चरण 1 , वर्चुअल होस्ट परिभाषा बनाएँ

उस फ़ाइल को संपादित करें जिसे httpd-hosts.confWampServer के लिए कहा जाता है

\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 में इस लाइन को खोजें

# Virtual hosts
#Include conf/extra/httpd-vhosts.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 पर चलने वाली सभी वर्चुअल साइटों पर नहीं।


बेहद मददगार। यह वास्तव में स्वीकृत उत्तर होना चाहिए। बहुत जानकारीपूर्ण और यदि ठीक से पालन किया जाता है, तो आपके पास लगभग 10 मिनट में उठना और चलना होगा। अच्छी सलाह। एक त्वरित बिंदु हालांकि। मुझे एक .htaccess: अमान्य कमांड 'RewriteEngine' त्रुटि मिली। मुझे Apache Modules मेनू के तहत rewrite_module पर टिक करना था। क्या कोई उत्तर दे सकता है कि मुझे ऐसा क्यों करना पड़ा?
क्रिस

1
@ क्रिस अपाचे का rewrite_module कोड है जो वास्तव में रीराइट इंजन प्रदान करता है। इसके बिना अपाचे को पता नहीं है कि यूआरएल पुनर्लेखन कैसे किया जाता है। मूल रूप से अपाचे की कोर का हिस्सा नहीं है, लेकिन एक बेहतर विवरण के लिए एक addon है
RiggsFolly

"Http-hosts.conf नामक फ़ाइल को संपादित करें जो WampServer के लिए \ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-hosts.conf में रहती है" wampserver 2.5 की मेरी ताज़ा स्थापना में, यह फ़ाइल मौजूद नहीं है। यदि आपका मतलब httpd-vhosts.conf है, तो कृपया सही करें।
bcsteeve 21

2
@ starleaf1 आपको हमारी इच्छा है! localhost/add_vhost.phpWAMPServer 3 पर रन करें, WAMPServers फोरम पर इस पोस्ट को देखें
RiggsFolly

1
गहराई से स्पष्टीकरण के बारे में बात करें! +1 के लिए right click wampmanager -> Tools -> Restart DNSएक नया वर्चुअल होस्ट जोड़ने के बाद चाल चली और समझ में नहीं आया कि यह अभी भी क्यों काम नहीं कर रहा है।
पेसानो २२

74

मेरा मानना ​​है कि यह सबसे अच्छा समाधान है:

Index.php को www फोल्डर में खोलें और सेट करें

लाइन 30 बदलें:$suppress_localhost = true;

सेवा $suppress_localhost = false;

यह सुनिश्चित करेगा कि परियोजना आपके स्थानीय होस्ट आईपी / नाम के साथ उपसर्ग कर रही है


1
धन्यवाद! हल की गई समस्या लेकिन / आइकनों के चित्र / चित्र पथ को रिक्त नहीं दिखा रहे हैं। back, gif, folder.gif शो नहीं मिला। इसके लिए भी कोई समाधान?
शुभम बादल

3
हां, प्रत्येक साइट के लिए एक वर्चुअल होस्ट बनाएं, कैसे के लिए ऊपर जवाब देखें।
रिग्सफॉली

1
वहाँ अब (WAMPSERVER 3) यह करने के लिए wampmanager पर एक सरल मेनू विकल्प है अगर आप वास्तव में नहीं समझते कि यह एक बुरा विचार क्या है। right click wampmanager->Wamp Settings->Add localhost to urlइसके बारे में एकमात्र अच्छी बात यह है कि आप इसे फिर से आसानी से बंद कर सकते हैं जब आपको पता चलता है कि पहली बार में यह कितना बुरा विचार था!
रिग्सफॉली


11

होमपेज से प्रोजेक्ट एक्सेस करने के लिए आपको पहले एक वर्चुअल होस्ट बनाने की आवश्यकता है ।

ऐसा करने का सबसे आसान तरीका है वैम्प के ऐड को वर्चुअल होस्ट उपयोगिता का उपयोग करना।

बस इन चरणों का पालन करें:

  1. "C: \ wamp \ www \" निर्देशिका के अंदर एक फ़ोल्डर बनाएं और इसे एक नाम दें जिसे आप अपनी साइट को उदाहरण के लिए देना चाहते हैं। ' मायसाइट ’। तो रास्ता "C: \ wamp \ www \ mysite" होगा
  2. अब अपने ब्राउज़र में लोकलहोस्ट का होमपेज खोलें, टूल मेनू के तहत Add a Virtual Host लिंक पर क्लिक करें ।
  3. वर्चुअल होस्ट का नाम दर्ज करें , यह नाम उस फ़ोल्डर का नाम होना चाहिए जिसे हमने www डायरेक्टरी यानी ' mysite ' के अंदर बनाया था ।
  4. वर्चुअल होस्ट का पूर्ण पथ दर्ज करें अर्थात "C: \ wamp \ www \ mysite \" बिना उद्धरण दिए और 'VirtualHost का निर्माण प्रारंभ करें' कहकर नीचे दिए गए बटन पर क्लिक करें ।
  5. वर्चुअल होस्ट बनाया गया, अब आपको बस 'रीस्टार्ट डीएनएस' की जरूरत है । यह ठीक करने के लिए wamp सर्वर के ट्रे मेनू आइकन पर क्लिक करें, टूल्स> रीस्टार्ट DNS पर क्लिक करें और ट्रे मेनू आइकन को फिर से हरा होने दें।
  6. सब तैयार! अब बस "C: \ wamp \ www \ mysite \" निर्देशिका के अंदर 'index.php' पेज बनाएं । 'Index.php' फ़ाइल में कुछ कोड जोड़ें , जैसे
    <?php echo "<h1>Hello World</h1>"; ?>

अब आप लोकलहोस्ट के होमपेज से प्रोजेक्ट्स एक्सेस कर सकते हैं। बस प्रोजेक्ट लिंक पर क्लिक करें और आप अपनी स्क्रीन पर 'हैलो वर्ल्ड' मुद्रित देखेंगे।


1
मुझे लगता है कि यह स्वीकार किया हुआ awnser होना चाहिए क्योंकि मुझे भी यही समस्या थी और यह काम कर गया!
Nmaster88

1
यह एक नवीनतम और परिपूर्ण है और मेरे लिए काम करता है। धन्यवाद । ऊपर दिए गए कुछ उत्तर लम्बे और अप्रचलित हैं।
जुनैद

2
यह 4/18/2017 के रूप में वर्तमान स्वीकृत उत्तर होना चाहिए। मेरे लिए पूरी तरह से काम किया।
रोलो

उदाहरण के लिए, मेरे द्वारा बनाए गए प्रोजेक्ट फ़ोल्डरों में से एक के लिए वर्चुअलबॉस्ट ने काम किया, उदाहरण के तौर पर 'योर प्रॉजेक्ट्स' शीर्षक के तहत एक लिंक के रूप में उदाहरण नहीं बदला है। यह क्यों है?
क्राइस्ट

अगर किसी के पास प्रॉजेक्ट फोल्डर के साथ कोई समस्या है, जो ब्लैक टेक्स्ट से http लिंक की ओर नहीं मुड़ रहा है, तो मैंने इसे सक्षम करने के लिए इस त्वरित तरीके का पालन किया: wamp / www / से index.php खोलें, स्ट्रिंग को लाइन 152 पर कॉपी करें: <li> <a href = "'। str_replace ('। conf ',' ', $ file)।' '/">'। str_replace ('। conf', '', $ file)। '</a> </ li> और स्ट्रिंग बदलें। <li> $ फ़ाइल। </ li> लाइन 359 पर। हे प्रेस्टो!
क्राइस

2

टूटे हुए आइकन लिंक को कैसे ठीक करें (blank.gif, text.gif, आदि)

दुर्भाग्य से जैसा कि पहले उल्लेख किया गया है, बस अपनी परियोजना में एक वर्चुअल होस्ट जोड़ना टूटे आइकन लिंक को ठीक नहीं करता है।

समस्या:

WAMP / Apache आइकन के लिए निर्देशिका संदर्भ को आपकी संबंधित स्थापना निर्देशिका में नहीं बदलता है। यह सांख्यिकीय रूप से "c: / Apache24 / icons" पर सेट है और 99.9% उपयोगकर्ता Apache स्थापना यहाँ नहीं रहती है। खासकर WAMP के साथ।

जोड़:

  1. अपनी अपाचे आइकन निर्देशिका खोजें! आमतौर पर यह यहाँ स्थित होगा: "c: /wamp/bin/apache/apache2.4.9/icons"। हालाँकि, आपका माइलेज आपके इंस्टॉलेशन के आधार पर भिन्न हो सकता है और यदि आपका Apache संस्करण अलग है, तो आपका रास्ता भी अलग होगा। \ _

  2. अपने पसंदीदा संपादक में httpd-autoindex.conf खोलें। यह फ़ाइल आमतौर पर यहां पाई जा सकती है: "C: \ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-autoindex.conf"। फिर से, यदि आपका Apache संस्करण अलग है, तो यह पथ होगा।

  3. इस परिभाषा को खोजें (आमतौर पर फ़ाइल के शीर्ष के पास स्थित):

    Alias /icons/ "c:/Apache24/icons/"
    
    <Directory "c:/Apache24/icons">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
    </Directory>
    
  4. "C: / Apache24 / icons /" निर्देशिकाओं को अपने से बदलें। महत्वपूर्ण आप पहले निर्देशिका संदर्भ में एक पीछे चल स्लेश होना चाहिए। दूसरी निर्देशिका संदर्भ में कोई अनुगामी स्लैश नहीं होना चाहिए। आपके परिणाम इसी तरह दिखना चाहिए। फिर, आपकी निर्देशिका अलग हो सकती है:

    Alias /icons/ "c:/wamp/bin/apache/apache2.4.9/icons/"
    
    <Directory "c:/wamp/bin/apache/apache2.4.9/icons">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
    </Directory>
    
  5. अपने Apache सर्वर को पुनरारंभ करें और अपने शांत आइकन का आनंद लें!


WAMPServer 3 से पहले के संस्करणों में बदलने के Aliasलिए एक बेहतर सामान्य समाधान है Alias /icons/ "icons/"। WAMPServer 3 और इसके बाद के संस्करण में यह डिफ़ॉल्ट है और इसमें कोई बदलाव की आवश्यकता नहीं है।
रिग्सफॉली

2

आप सभी चरणों का पालन कर सकते हैं @RiggsFolly Thats वास्तव में अच्छा उत्तर है, यदि आप वर्चुअल होस्ट बनाना नहीं चाहते हैं और पिछले लोकलहोस्ट की तरह उपयोग करना चाहते हैं / उदाहरण / या कुछ इस तरह से कि आप @Arunu द्वारा उत्तर का उपयोग कर सकते हैं

लेकिन अगर आप अभी भी समस्या का सामना कर रहे हैं तो कृपया इस विधि का उपयोग करें,

  1. अपने wamp फ़ोल्डर का पता लगाएँ (जैसे। c: / Wamp /) जहाँ आपने संस्थापित किया है
  2. गोटो वैंप / www /
  3. Index.php फ़ाइल खोलें
  4. इस कोड को खोजें $projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : '').$file.'">'.$file.'</a></li>';
  5. http: // के बाद इसे लोकलहोस्ट में जोड़ें। $projectContents .= '<li><a href="'.($suppress_localhost ? 'http://localhost' : '').$file.'">'.$file.'</a></li>';
  6. Wamp सर्वर को पुनरारंभ करें
  7. खुला लोकलहोस्ट अपडेटेड लिंक देखें

आशा है कि आपको अपना यूआरएल wamp सर्वर के पिछले संस्करण की तरह मिला होगा।


क्या आप कृपया हम पर यह सुझाव दे सकते हैं कि हम इसे xampp के लिए करें। मैं सभी तरीकों की कोशिश की, अभी भी मेरी साइट xampp होमपेज पर पुनर्निर्देशित
Sushivam

1
$suppress_localhost = false;

इसने मेरे लिए चाल चली।


1

यह Wamp 3+ पर काम करता है।

  • Wamp फ़ोल्डर पर जाएँ (wamp / या wamp64 /)
  • Wampmanager.conf खोलें
  • UrlAddLocalhost परम खोजें और इसे सेट करें: urlAddLocalhost = "on"

Www फ़ोल्डर में index.php को ट्वीक करने की आवश्यकता नहीं होनी चाहिए।


0

पुन :: Wampserver LocalHost लिंक सही ढंग से काम नहीं कर रहा है
यह Wampserver2.5 के साथ जून 2014 के रूप में है (हो सकता है कि वे इसे बाद में बनाएंगे)।
नोट: लोकलहोस्ट का उपयोग करने के लिए: लोकलहोस्ट के बजाय 8080 केवल नीचे दिए गए संपादन में उचित बदलाव करें।

इस मुद्दे के 2 पहलू हैं -
पहला है वैम्प लोकलहोस्ट होमपेज से "योर प्रॉजेक्ट्स" के तहत आइटम एक्सेस करना।
दूसरा वैम्पसर आइकन आइकन टास्कबार की "माई प्रोजेक्ट्स" सूची में सूचीबद्ध वस्तुओं को सही ढंग से एक्सेस करने में सक्षम होना है।

पहले को ठीक करने के लिए (वैंप लोकलहोस्ट होमपेज से "योर प्रोजेक्ट्स" के तहत आइटम एक्सेस करने में सक्षम होने के लिए) आपको निम्नलिखित कार्य करने होंगे ...

2 संपादन हैं जो आपको अपने wamp \ www फ़ोल्डर में स्थित index.php फ़ाइल में बनाने चाहिए (आमतौर पर C: \ wamp / www)

1) लाइन 30 पर परिवर्तन

  $suppress_localhost = true;

सेवा

  $suppress_localhost = false;

2) लाइन 338 परिवर्तन पर

  $projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : '').$file.'">'.$file.'</a></li>';

सेवा

  $projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : 'http://localhost//').$file.'">'.$file.'</a></li>';

आपके द्वारा उपरोक्त संपादन किए जाने के बाद - यदि वैम्पसरवर स्थानीय होस्ट पृष्ठ को ताज़ा करने के लिए चल रहा है और परिवर्तन तुरंत प्रभावी हो जाते हैं।

2 आइटम को ठीक करने के लिए (वैंपसर आइकन टास्कबार की "मेरी परियोजनाएं" सूची): आपको C: \ wamp \ script \ ताज़ा करने की आवश्यकता है।

लाइन 651 का पता लगाएँ और उस पंक्ति के अनुभाग को बदलें जो पढ़ता है

   Parameters: "http://'.$projectContents[$i].'/"; Glyph: 5

सेवा

   Parameters: "http://localhost//'.$projectContents[$i].'/"; Glyph: 5

आपके द्वारा इन परिवर्तनों के 2 सेट करने के बाद, आपको वैम्प आइकन ट्रे ऐप के नीचे स्थित पुट ऑनलाइन / ऑफलाइन विकल्प को टॉगल करके "माय प्रोजेक्ट्स" सूची को रिफ्रेश करने के लिए वैम्पसरवर को मजबूर करना पड़ सकता है।


बहुत बढ़िया दोस्त, अंत में कुछ है कि काम करता है! (राउंड आईस जैकिंग पोर्ट 80 के लिए वैम्प लोकलहोस्ट पेज से साइट का काम करना)
कैमी

-1
  1. check wamp server आइकन हरा है या नहीं अगर यह हरा है तो यह काम कर रहा है यदि नहीं तो आपको करने के लिए इन चरणों का पालन करना होगा

    ए। सभी प्रोग्राम्स को वैंप चलाने से पहले बंद कर देना चाहिए क्योंकि अधिकांश मामलों में कुछ सॉफ्टवेयर्स जैसे स्काइप वही पोर्ट (80) लेते हैं जो वैंप द्वारा उपयोग किया जाता है।

    ख। आप स्काइप के पोर्ट को बदल सकते हैं: टूल-एस-> ऑप्रेशन-> एडवांस्ड-> कनेक्शन अनटैक यूज पोर्ट 80

  2. wamp को पुनरारंभ करें यह काम करेगा।

मामला दर्ज

  1. जब आप loalhost में प्रोजेक्ट पर क्लिक करते हैं तो यह प्रोजेक्ट नाम के लोकलहोस्ट infront को नहीं दिखाता है और इस वजह से ऐसा लगता है कि जैसे wamp काम नहीं कर रहा है तो आपको केवल एक चीज पर काम करना होगा

    । wmp index.php फ़ाइल में जाएँ और $ suppress_localhost = false बदलें; $ suppress_localhost = true से; या इसके विपरीत प्रयास करें यह काम करेगा


-1

अपने www निर्देशिका पर नेविगेट करें (यदि आप wamp सर्वर का उपयोग कर रहे हैं) htdocs (यदि XAMPP पर)। अपना admin.php खोलें और प्रोजेक्ट सामग्री पर खोज करें / या सीधे लाइन नंबर 339 पर जाएं और लिंक को बदलें, स्थानीय होस्ट को लिंक में सम्मिलित करें।

वह काम करना चाहिए ,,


-1

मुझे लगता है कि यह परियोजना द्वारा एक स्थानीय उपडोमेन बनाने के लिए (स्वीकृत उत्तर की तुलना में) बहुत आसान है और अपाचे को नाम से कई साइटों की सेवा करने के लिए कहें।

उदाहरण के लिए, मान लें कि आपने एक प्रोजेक्ट बनाया है c:/wamp64/www/sites/mysite, जिसे आप http: //mysite.localhost पर एक्सेस कर सकते हैं, इसके लिए आपको निम्नलिखित कार्य करने होंगे:

1. अलग-अलग नामों का जवाब करने के लिए अपने मशीन को बताएँ जोड़े 127.0.0.1 mysite.localhostके लिएC:\windows\system32\drivers\etc\hosts

2. अपने DNS कैश फ्लश करें एक कमांड प्रॉम्प्ट खोलें प्रशासक और टाइप करें net stop dnscache, फिर net start dnscache

3. अपाचे को बताएं कि ट्रे में वैंप के आइकन पर क्लिक करें, अपाचे पर जाएं -> httpd.conf, और इसे अंत में जोड़ें:

# Tells Apache to identify which site by name
NameVirtualHost *:80
# Tells Apache to serve the default WAMP Server page to "localhost"
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost> 
# Tells Apache to serve Client 1's pages to "client1.localhost"
# Duplicate and modify this block to add another client
<VirtualHost 127.0.0.1>
# The name to respond to
ServerName client1.localhost
# Folder where the files live
DocumentRoot "C:/wamp64/www/sites/mysite"
# A few helpful settings...
<Directory "C:/wamp64/www/sites/mysite">
allow from all
order allow,deny
# Enables .htaccess files for this site
AllowOverride All
</Directory>
# Apache will look for these two files, in this order, if no file is specified in the URL
DirectoryIndex index.html index.php
</VirtualHost> 

( स्रोत )

4. अपाचे को पुनरारंभ करें ट्रे में वैंप के आइकन पर क्लिक करें, "पुनरारंभ करें" चुनें

5. बेस url को परिभाषित करें अपने प्रोजेक्ट फ़ोल्डर में जाएं, सर्वर रूट को टूटने से रोकने / लिंक करने के <base href="http://mysite.localhost" />लिए अपने <head>अनुभाग में जोड़ें ।

व्यक्तिगत रूप से, मैं PHP (कुछ इस तरह $site_root = (IS_LOCALHOST) ? '<base href="http://mysite.localhost" />' : null;) का उपयोग करके अपने HTML कोड को गतिशील रूप से अपने टेम्पलेट में इंजेक्ट करता हूं, इसलिए मुझे उत्पादन पर एक बार इसे हटाने से परेशान होने की आवश्यकता नहीं है।


-3

नमस्कार आपको wamp सर्वर से index.php खोलने और $ suppress_localhost = false बदलने की आवश्यकता है; $ suppress_localhost = true से; तब आपका वैंप ठीक काम करेगा


2
बहुत सारे जवाब हैं जो बिल्कुल यही कहते हैं।
वेल विक्टस

1
तब आपने कुछ भी योगदान नहीं दिया।
वेल विक्टस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.