Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

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

WampServer में वर्चुअल होस्ट कैसे बनाएं

WAMPServer 3 ने इस प्रक्रिया को बहुत आसान बना दिया है!

WAMPServer के हिस्से के रूप में प्रदान की गई उपयोगिता से आप लगभग सब कुछ कर सकते हैं।

  • अपने project.site को समाहित करने के लिए अंदर एक फ़ोल्डर बनाएँ। यह C:\wamp\www\ . के अंतर्गत हो सकता है निर्देशिका या पूरी तरह से अलग फ़ोल्डर जैसे C:\websites . में ।

  • आपके द्वारा चुने गए स्थान के अंदर एक फ़ोल्डर बनाएँ EG C:\websites\project1\www या c:\wamp\www\project1\www . के तहत

  • अब लोकलहोस्ट खोलें wampmanager->localhost और लिंक पर क्लिक करें Add a Virtual Host होमपेज पर टूल्स सेक्शन के तहत।

आपको इस तरह का एक पेज दिखाई देगा:

  • प्रत्येक फ़ील्ड के ऊपर दिए गए निर्देशों के अनुसार फ़ील्ड भरें

  • वर्चुअल होस्ट कॉन्फ़िगरेशन आपके लिए बनाया गया होगा।

  • अब आपको DNS कैश को पुनरारंभ करना होगा। आप इसे wampmanager मेनू से इस तरह कर सकते हैं right click wampmanager->Tools->Restart DNS . DNS कैश को पुनरारंभ किया जाएगा और फिर अपाचे को भी रोक दिया जाएगा और पुनरारंभ किया जाएगा। जब wampmanager आइकन फिर से हरा हो जाता है तो सब कुछ पूरा हो जाता है।

  • अब आपको एक साधारण index.php बनाना होगा फ़ाइल या अपनी साइट को ऊपर बनाए गए फ़ोल्डर में स्थापित करें।

  • मान लें कि आपके VH को project.dev कहा गया था आपको उस नाम को आपके वर्चुअल होस्ट . के अंतर्गत देखना चाहिए WAMPServer मुखपृष्ठ का अनुभाग।

  • आप इस मेनू से साइट को लॉन्च कर सकते हैं, या पता बार में नए डोमेन नाम का उपयोग कर सकते हैं जैसे 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 कोडिंग सीखने के लिए पूरी तरह से स्वीकार्य था। हालांकि वास्तविक वेब साइट विकसित करते समय इसका उपयोग कभी भी नहीं किया गया था जिसे आप बाद में अपने लाइव होस्ट किए गए सर्वर पर कॉपी करना चाहेंगे। वास्तव में यदि आपने इस तंत्र का उपयोग किया है तो यह अक्सर समस्याएं उत्पन्न करता है क्योंकि लाइव साइट कॉन्फ़िगरेशन आपके विकास कॉन्फ़िगरेशन से मेल नहीं खाएगा।

समस्या वास्तविक वेबसाइट विकास के लिए।

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

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

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

WampServer में वर्चुअल होस्ट कैसे बनाएं

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

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

  1. वर्चुअल होस्ट परिभाषा बनाएं
  2. HOSTS फ़ाइल में अपना नया डोमेन नाम जोड़ें।
  3. 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 . के रूप में परिभाषित। ऐसे कई अन्य पैरामीटर भी हैं जिन्हें आप वर्चुअल होस्ट परिभाषा में जोड़ सकते हैं, अपाचे दस्तावेज़ देखें।

थोड़ा अलग

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

Require local

बाहरी पते से किसी भी आकस्मिक हैक को एक त्रुटि प्राप्त होगी और आपके पीसी में नहीं आएगी, लेकिन यदि आप एक डोमेन की गलत वर्तनी करते हैं तो आपको WampServer होमपेज दिखाया जाएगा, क्योंकि आप उसी पीसी पर हैं जिस पर WampServer और उसके बाद 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 या दोनों का उपयोग करेगा। मुझे नहीं पता कि यह कैसे तय करता है कि किसका उपयोग करना है, लेकिन यह या तो उपयोग कर सकता है यदि आपके पास IPV6 स्टैक चालू है, और अधिकांश विंडो OS XP SP3 के रूप में करते हैं।

अब हमें विंडोज़ को इसके डोमेन नाम कैश को रीफ़्रेश करने के लिए कहना चाहिए, इसलिए व्यवस्थापक के रूप में चलाएँ मेनू विकल्प फिर से, और निम्न कार्य करें।

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 आइकन फिर से हरा नहीं होता है, तो इसका मतलब है कि आपने शायद \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 निर्देशिका की किसी भी उप निर्देशिका को सूचीबद्ध करेगा और उस उप निर्देशिका में साइट को लॉन्च करने के लिए एक लिंक प्रदान करेगा। लिंक कार्य हमें इस लिंक को वास्तव में आपके ब्राउज़र में उस साइट को लॉन्च करने के लिए एक वर्चुअल होस्ट परिभाषा बनानी होगी, वर्चुअल होस्ट परिभाषा के बिना यह एक कीवर्ड के रूप में साइट नाम के लिए एक वेब खोज शुरू करने की संभावना है या बस एक साइट नहीं मिली शर्त वापस कर सकता है।

'माई वर्चुअल होस्ट्स' मेनू आइटम थोड़ा अलग है। यह वर्चुअल होस्ट्स को परिभाषित करने के लिए उपयोग की जाने वाली फ़ाइल की खोज करता है (हम इसे एक मिनट में प्राप्त करेंगे) और प्रत्येक सर्वरनाम पैरामीटर के लिए मेनू लिंक बनाता है और प्रत्येक के लिए एक मेनू आइटम बनाता है। यह एक बार जब हम बनाते हैं तो यह थोड़ा भ्रमित करने वाला प्रतीत हो सकता है \wamp\www फ़ोल्डर की उप निर्देशिकाओं के लिए वर्चुअल होस्ट परिभाषा कुछ आइटम 'माई प्रोजेक्ट्स' मेनू और 'माई वर्चुअल होस्ट्स' मेनू दोनों पर दिखाई देंगे।

मैं इस अन्य 'मेरे वर्चुअल होस्ट' मेनू को कैसे चालू करूं?

  • \wamp\wampmanager.tpl फ़ाइल का बैकअप लें, यदि आप कोई गलती करते हैं, तो यह एक बहुत ही महत्वपूर्ण फ़ाइल है।
  • \wamp\wampmanager.tpl संपादित करें
  • इस पैरामीटर को खोजें ;WAMPPROJECTSUBMENU , यह '[मेनू.बाएं]' अनुभाग में है।
  • यह नया पैरामीटर जोड़ें ;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

नोट: सर्वरनाम या सर्वरअलियास का उपयोग करना एक अच्छा विचार नहीं है जो आपके लाइव डोमेन नाम के समान है, जैसे कि हमने सर्वरनाम के रूप में example.com का उपयोग किया था, इसका मतलब यह होगा कि हम अब वास्तविक लाइव तक नहीं पहुंच सकते इस पीसी से साइट के रूप में यह example.com को 127.0.0.1 यानी इस पीसी पर निर्देशित करेगा और इंटरनेट पर नहीं।

यह भी देखें:देखें कि मैंने VHOST परिभाषाओं के भीतर से इस साइट को इंटरनेट से एक्सेस करने की अनुमति दी है, यह परिवर्तन केवल इस साइट पर लागू होगा और किसी अन्य पर लागू नहीं होगा। क्लाइंट को आपके परिवर्तनों को लाइव सर्वर पर कॉपी किए बिना एक या दो घंटे के लिए देखने की अनुमति देने के लिए बहुत उपयोगी है। इसका मतलब यह है कि हमें इस फ़ाइल को मैन्युअल रूप से संपादित करना होगा ताकि इस एक्सेस को चालू और बंद किया जा सके बजाय पुट ऑनलाइन/ Wampmanager पर ऑफ़लाइन मेनू आइटम।

इसके अलावा, मैंने PHP कॉन्फ़िगरेशन में कुछ संशोधन जोड़े हैं, फिर से यह केवल इस एक साइट पर लागू होगा। आपके द्वारा बनाए गए अन्य सभी साइटों के विपरीत विशिष्ट आवश्यकता वाली साइट को बनाए रखने के लिए बहुत उपयोगी है। मुझे लगता है कि हम उपयोग किए गए पैरामीटर से मान सकते हैं कि इसमें है इसमें कहीं लंबा चलने वाला पृष्ठ है और यह बहुत बुरी तरह से लिखा गया है और पृष्ठ की भयानक गड़बड़ी किए बिना ब्राउज़र पर प्रदर्शित होने वाली त्रुटियों के साथ नहीं चलेगा। मेरा विश्वास करें कि इस तरह की साइटें मौजूद हैं और लोग अब भी चाहते हैं कि उनका रखरखाव खराब हो . लेकिन इसका मतलब है कि हमें केवल इस विशिष्ट साइट के लिए इन मापदंडों को बदलना होगा, न कि विश्व स्तर पर WampServer पर चलने वाली सभी वर्चुअल साइटों के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL LOAD DATA INFILE का उपयोग करके csv से डेटा आयात करता है

  2. MySql सिंगल टेबल, पिछले 7 दिनों का चयन करें और खाली पंक्तियों को शामिल करें

  3. PyInstaller, कल्पना फ़ाइल, ImportError:'blah' नाम का कोई मॉड्यूल नहीं

  4. MySQL में एक कॉलम का नाम बदलने में त्रुटि

  5. मैं MySQL में गैर-ASCII वर्ण कैसे ढूंढ सकता हूं?