HAMPocs के बाहर XAMPP / Apache फ़ाइल बनाएं [बंद]


304

क्या निर्देशिका के बाहर किसी फ़ाइल की सेवा करने के लिए xampp को कॉन्फ़िगर करना संभव है htdocs?

उदाहरण के लिए, मान लें कि मेरे पास एक फाइल इस प्रकार है:

C:\projects\transitCalculator\trunk\TransitCalculator.php

और मेरी xampp फाइलें आम तौर पर बाहर से दी जाती हैं:

C:\xampp\htdocs\

(क्योंकि यह डिफ़ॉल्ट कॉन्फ़िगरेशन है) क्या कोई तरीका है अपाचे को पहचानने और मेरी TransitCalculator.phpफ़ाइल को नीचे ले जाने के बिना उसकी सेवा करने के लिए htdocs? अधिमानतः मैं अपाचे को प्रोजेक्ट डायरेक्टरी की संपूर्ण सामग्री तक पहुंच / सेवा प्रदान करना चाहता हूं, और मैं प्रोजेक्ट डायरेक्टरी को आगे नहीं बढ़ाना चाहता htdocs

संपादित करें: प्रश्न / शीर्षक को अपाचे को जोड़ने के लिए Q / A को "खोज योग्य" बनाने के लिए संपादित किया गया


1
मुझे लगता है कि टैग पर्याप्त होने चाहिए।
आइसडवाटर

24
यह प्रश्न बंद नहीं होना चाहिए था। यह एक XAMPP प्रश्न है। यह एक डेवलपर प्रश्न है।
एंड्रयू कोपर

15
एंड्रयू कोपर, मैं सहमत हूं, लेकिन इस बिंदु पर स्टैक-एक्सचेंज इकोस्फेयर भर में भारी-भरकम मैत्रीपूर्ण स्थानिक स्तर के साथ यह आश्चर्यजनक है। ¯_ (¯) _ / ¯
cmcculloh

विषय से बाहर, लेकिन सिर्फ टिप करना चाहते हैं: कुछ समय के बजाय एक विकल्प अपने "htdocs" फ़ोल्डर में निर्देशिका को स्थानांतरित करने के लिए है। यदि आप स्थानीय ड्राइव में Google ड्राइव में फ़ाइलें खोलना चाहते हैं;) ( stackoverflow.com/questions/41751330/… )
गोड़ोवा

2
सभी उत्तरों के अलावा, मैं एक जोड़ना चाहूंगा। PHP 5.4.0 से, आप कमांड लाइन का उपयोग करके अपने प्रोजेक्ट रूट पर जा सकते हैं और निष्पादित कर सकते हैं php -S <host>:<port>। उदाहरण के लिए php -S localhost:80
radiantshaw

जवाबों:


362

ठीक है, प्रति pixrr , स्पार्क्स और डेव के उत्तर में ऐसा लगता है कि ऐसा करने के तीन तरीके हैं:


वर्चुअल होस्ट

  1. ओपन सी: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf।
  2. अन-कमेंट ~ लाइन 19 ( NameVirtualHost *:80)।
  3. अपना वर्चुअल होस्ट जोड़ें (~ लाइन 36):

    <VirtualHost *:80>
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        <Directory C:\Projects\transitCalculator\trunk>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
  4. अपनी मेजबान फ़ाइल खोलें (C: \ Windows \ System32 \ ड्राइवर \ etc \ मेजबान)।

  5. जोड़ना

    127.0.0.1 transitcalculator.localhost #transitCalculator

    फ़ाइल के अंत में (स्पायबोट से पहले - यदि आपने ऐसा इंस्टॉल किया है तो खोज और नष्ट करें)।

  6. सहेजें (आपको इसे डेस्कटॉप पर सहेजना पड़ सकता है, पुरानी होस्ट्स फ़ाइल (राइट क्लिक> प्रॉपर्टीज़) पर अनुमतियों को बदल सकते हैं, और यदि आप उपयोग कर रहे हैं तो नए को पुराने एक पर डायरेक्ट्री में कॉपी करें या पुराने का नाम बदलें) विस्टा और परेशानी है)।
  7. अपाचे को फिर से शुरू करें।

अब आप http: //transitcalculator.localhost/ पर ब्राउज़ करके उस निर्देशिका तक पहुँच सकते हैं ।


एक उपनाम बनाएं

  1. शुरू ~ अपने की लाइन 200 http.conf, फ़ाइल के बीच सब कुछ कॉपी <Directory "C:/xampp/htdocs">और </Directory>(~ लाइन 232) और इसे तुरंत नीचे पेस्ट के साथ C:/xampp/htdocsअपने वांछित सूची के साथ बदल दिया (इस मामले में C:/Projects) नई निर्देशिका के लिए अपने सर्वर सही अनुमतियां देने के लिए।

  2. <IfModule alias_module></IfModule>अनुभाग खोजें (~ लाइन 300) और जोड़ें

    Alias /transitCalculator "C:/Projects/transitCalculator/trunk"

    (या जो भी आपकी इच्छाओं के लिए प्रासंगिक है) Aliasटिप्पणी ब्लॉक के नीचे , मॉड्यूल टैग के अंदर।


अपना दस्तावेज़ रूट बदलें

  1. सी ~ ~ 176 में संपादित करें: \ xampp \ apache \ conf \ httpd.conf; बदलने के DocumentRoot "C:/xampp/htdocs"लिए #DocumentRoot "C:/Projects"(या जो आप चाहते हैं)।

  2. अपने नए स्थान (इस मामले में C:/Projects) से मिलान करने के लिए ~ लाइन 203 संपादित करें ।


टिप्पणियाँ:

  • आपको बैक स्लैश "\" के बजाय फॉरवर्ड स्लैश "/" का उपयोग करना होगा।
  • अंत में अनुगामी "/" शामिल न करें।
  • अपने सर्वर को पुनरारंभ करें

13
चरण पर (3) C: \ Windows \ System32 \ ड्राइवरों \ etc \ मेजबान को संपादित करने के लिए। पहले प्रशासक के रूप में संपादक (नोटपैड, नोटपैड ++ या किसी संपादक) को चलाने के लिए सबसे अच्छा अभ्यास। तो आप सीधे C: \ Windows \ System32 \ ड्राइवरों \ etc \ फ़ोल्डर में सहेज सकते हैं।
CallMeLaNN

3
यदि आपको 403 त्रुटियां मिलती हैं तो इस लिंक
Wojtek Owczarczyk

21
आदेश की अनुमति का उपयोग करते हुए, Win7 रिटर्न 403 ERROR पर सभी से अनुमति देने से इनकार करें क्योंकि यह विकल्प पदावनत हैं। सभी की आवश्यकता का उपयोग करें। stackoverflow.com/questions/9110179/...
hywak

4
सिर्फ FYI करें, यह कदम मेरे लिए आवश्यक नहीं प्रतीत हुआ: Un-comment line 19 (NameVirtualHost *: 80)
सिल्वरबैक

2
का उपयोग करना Order allow,deny Allow from allमेरे लिए काम नहीं किया, लेकिन Require all grantedकाम किया।
डैनी बैकेट

96

आप XAMPP \ apache \ conf \ httpd.conf में DocumentRoot सेटिंग को संपादित करके इसे स्थानांतरित कर सकते हैं ।

यह वर्तमान में होना चाहिए:

सी: / XAMPP / htdocs

इसे इसमें बदलें:

सी: / परियोजनाओं / transitCalculator / ट्रंक


40
डॉक्यूमेंटरूट के लिए पूछने वाली BOTH लाइनों में इसे संपादित करना न भूलें। यदि आप केवल शीर्ष एक को बदलते हैं, तो आपको रीड-ऐक्सेस एरर आदि
मिलेंगे

2
यह XAMP मैक के लिए भी लागू होता है?
क्रोधित कीवी

अब किस URL द्वारा, इंडेक्स पेज तक पहुँच प्राप्त कर सकते हैं?
मनीष कुमार

49

एक VirtualHost भी इसके लिए काम करेगा और आपके लिए बेहतर काम कर सकता है क्योंकि आप सब-प्रोजेक्ट्स की आवश्यकता के बिना कई प्रोजेक्ट होस्ट कर सकते हैं। यहाँ आप इसे कैसे करते हैं:

httpd.conf (या httpd.conf के सापेक्ष अतिरिक्त \ httpd-vhosts.conf। ट्रेलिंग स्लैश "\" के कारण यह काम नहीं कर सकता है):

NameVirtualHost *:80
# ...
<VirtualHost *:80>  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
    <Directory C:\projects\transitCalculator\trunk\>  
        Order allow,deny  
        Allow from all  
    </Directory>
</VirtualHost> 

HOSTS फ़ाइल (c: \ windows \ system32 \ driver \ etc \ मेजबान आमतौर पर):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

अब XAMPP को पुनरारंभ करें और आप http: //transitcalculator.localhost/ का उपयोग करने में सक्षम होना चाहिए और यह सीधे उस निर्देशिका में मैप होगा।

यह मददगार हो सकता है यदि आप एक उत्पादन वातावरण को दोहराने की कोशिश कर रहे हैं जहाँ आप एक साइट विकसित कर रहे हैं जो एक डोमेन नाम की जड़ पर बैठेगी। उदाहरण के लिए, आप उन निरपेक्ष रास्तों वाली फ़ाइलों की ओर संकेत कर सकते हैं जो सर्वर पर ले जाएंगी:

<img src="/images/logo.png" alt="My Logo" />

एलियासेस या उपनिर्देशिकाओं का उपयोग करने वाले वातावरण में, आपको ठीक उसी स्थान पर नज़र रखने की आवश्यकता होगी जहाँ "चित्र" निर्देशिका वर्तमान फ़ाइल के सापेक्ष थी।


मेरे पास अपने पीसी पर कई नेटवर्क ड्राइव हैं जो अक्षर (जैसे X:\myfolder) ड्राइव करने के लिए मैप किए गए हैं । जब मैं इस पद्धति का उपयोग करता हूं तो मुझे "एक्सेस निषिद्ध" चेतावनी मिलती है। क्या इसका मतलब यह है कि अपाचे उपयोगकर्ता ने ड्राइव तक पहुंच नहीं पढ़ी है?
20'13

1
के तहत और साथ में Directoryबदलें । देखें stackoverflow.com/questions/9110179/…Order allow,denyAllow from allRequire all granted
Michiel

16

आप अपाचे को किसी भी प्रतिबंध के साथ कहीं से भी पृष्ठों की सेवा के लिए सेट कर सकते हैं लेकिन इसे सामान्य रूप से अधिक सुरक्षित रूप में वितरित किया जाता है।

अपनी अपाचे फ़ाइलों को संपादित करना (http.conf अधिक सामान्य नामों में से एक है) आपको किसी भी फ़ोल्डर को सेट करने की अनुमति देगा ताकि यह आपके वेबरोट में दिखाई दे।

संपादित करें:

उर्फ myapp c: \ myapp \

मैंने http.conf फ़ाइल में एक उपनाम बनाने के लिए प्रारूप को शामिल करने के लिए अपने उत्तर को संपादित किया है जो विंडोज़ में शॉर्टकट की तरह है या संयुक्त राष्ट्र के तहत एक सिम्लिंक है x * जहां Apache 'दिखावा' एक फ़ोल्डर वेबरोट में है। यह संभवत: लंबी अवधि में आपके लिए अधिक उपयोगी होगा।


10

यदि आप अपने दस्तावेज़ रूट के रूप में नेटवर्क ड्राइव का उपयोग करने के लिए XAMPP प्राप्त करने की कोशिश कर रहे हैं, तो आपको httpd.conf में UNC रास्तों का उपयोग करना होगा। XAMPP आपके मैप किए गए नेटवर्क ड्राइव को नहीं पहचानेगा।

उदाहरण के लिए निम्नलिखित काम नहीं करेंगे, DocumentRoot "X: / webroot"

लेकिन यह वसीयतनामा, DocumentRoot "//192.168.10.100/webroot" (आगे के स्लैश पर ध्यान दें, स्लैश पर नहीं)


यह मेरे मैप किए गए नेटवर्क ड्राइव के साथ ठीक काम करता है।
सीन केंडल

7

अपाचे 2 को htdocs के बाहर वेबसाइटों की मेजबानी करने की अनुमति देने का समाधान:

Httpd.conf में "DocumentRoot" निर्देश के नीचे, आपको एक निर्देशिका ब्लॉक देखना चाहिए। इस निर्देशिका ब्लॉक को निम्न से बदलें:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

एक वास्तविक पर्यावरण में इस संदर्भ का उपयोग करने के लिए याद नहीं


सिम्बल का समर्थन करने वाली फ़ाइल सिस्टम के लिए ही काम करता है। कोई स्पष्टीकरण नहीं कि इस विकल्प का उपयोग क्यों नहीं किया जाना चाहिए।
डेन्यूबियन नाविक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.