मैक ओएस एक्स लॉयन 10.7.2 के तहत मेरी ~ / साइट्स / अपाचे के लिए एक प्रतीकात्मक लिंक पर एसेसी की अनुमति कैसे दें


12

मुझे अपने Apache से ~ / साइट के भीतर एक सिम्पट-लिंक्ड निर्देशिका तक पहुंच की अनुमति है। मैंने इस तरह निर्देशिकाओं का अनुकरण किया

ln -s ~/path/to/the/source/directory/ ~/Sites/source-link-here

अब जब भी मैं GET रिक्वेस्ट फायर करता हूं तो मुझे 403 रिप्लाई मिलता है

curl http://localhost/~username/source-link-here/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /~username/source-link-here
on this server.</p>
...

मैं अपाचे को सिम्पीडेड डायरेक्टरी में एक्सीडेंट की अनुमति देने के लिए कैसे कह सकता हूं और कैसे मैं अपाचे को केवल लोकलहोस्ट से निकाल दिए गए अनुरोधों के लिए यह बताने की अनुमति देता हूं।

कोई भी मदद बहुत ही सराहनीय होगी।

सादर

robertj

जवाबों:


10

यहाँ एक ब्लॉग पोस्ट लिखी गई है, जब मैं यह पता लगाने की कोशिश कर रहा था कि आप जो करने की कोशिश कर रहे हैं वह वास्तव में कैसे करना है।

  1. मैक पर वेब शेयरिंग को सक्षम करें सिस्टम प्रीफ्रेंस -> शेयरिंग -> चेक वेब शेयरिंग सक्षम करें
  2. / User /conf फ़ाइल को / Private / etc / apache2 / उपयोगकर्ताओं में स्थित संपादित करें और "FollowSymLinks" निर्देश जोड़ें:

    <निर्देशिका "/ उपयोगकर्ता / आपका उपयोगकर्ता नाम / साइट /">
        विकल्प अनुक्रमणिका MultiViews FollowSymLinks
        AllowOverride कोई नहीं
        आदेश की अनुमति, इनकार
        सभी से अनुमति दें
    </ निर्देशिका>
    
  3. /PStreet/etc/apache2/httpd.conf फ़ाइल संपादित करें और सुनिश्चित करें कि "# वर्चुअल होस्ट" के तहत लाइन को टिप्पणी नहीं दी गई है, जैसे:

    /PStreet/etc/apache2/extra/httpd-vhosts.conf शामिल करें
    
  4. /PStreet/etc/apache2/extra/httpd-vhosts.conf फ़ाइल संपादित करें और जोड़ें:

    <VirtualHost *: 80>  
        <डायरेक्टरी / यूजर्स/yourUserName/Sites/MyWebSite.com>
            विकल्प + FollowSymlinks + SymLinksIfOwnerMatch
            ऑवरऑवरराइड ऑल
        </ निर्देशिका>
      DocumentRoot / Users / yourUserName / Sites / MyWebSite
      सर्वरनेम MyWebSite.local
    </ VirtualHost>
    
  5. / Etc / मेजबान फ़ाइल संपादित करें और इसे शीर्ष पर जोड़ें:

    127.0.0.1 MyWebSite.local
    
  6. साइट निर्देशिका में अपनी कोड निर्देशिका को एक से लिंक करने के लिए एक सिमलिंक बनाएं।

    ln -s ~ / कोड / MyWebSite ~ / साइटें / MyWebSite
    
  7. फिर से शुरू करें


1
सुपर उपयोगकर्ता में आपका स्वागत है! यहां उत्तर के आवश्यक भागों को शामिल करना अच्छा होगा , और भविष्य के संदर्भ के लिए लिंक प्रदान करें।
slhck

मैं xampp zend पर्यावरण से डिफ़ॉल्ट mac / apache सेटअप में गया और पानी में फिर से शुरू होने के बाद मर गया। चरण 2 कुंजी थी। धन्यवाद!
शनीमल

2

वास्तव में केवल एमेज के उत्तर से पहले 2 चरणों के अलावा एक अपाचे पुनरारंभ आवश्यक है, यहां मेरे लिए काम किया गया है:

  1. मैक पर वेब शेयरिंग को सक्षम करें सिस्टम प्रीफ्रेंस -> शेयरिंग -> चेक सक्षम वेब शेयरिंग पर जाकर

  2. username.confमें स्थित अपनी फ़ाइल को संपादित करें /private/etc/apache2/usersऔर FollowSymLinks निर्देश जोड़ें :

    <Directory "/Users/yourUserName/Sites/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    
  3. अपने अपाचे विन्यास की जाँच करें

    सुडो अपाचेक्टल -t

  4. फिर से शुरू करें

    सुडो अपाचेक्टल रीस्टार्ट

अब अपाचे आपकी Sitesनिर्देशिका के तहत प्रतीकात्मक लिंक का काम करेगा ।


1

मुझे 403 forbiddenत्रुटि हो रही थी । मेरी समस्या का हल क्या है httpd-vhosts.conf, मैंने नीचे के विन्यास को बदल दिया

<Location "/modulename">
  Order allow,deny
  Allow from all
</Location>

साथ में

<Location "/modulename">
  Require all granted
</Location>

सभी स्थान टैग के लिए एक ही था। इसने अनुमति समस्या को हल कर दिया।


0

Options FollowSymLinks httpd.conf में उपयुक्त कंटेनर के लिए

  1. DocumentRoot स्ट्रिंग का पता लगाएं, याद रखें कि यह मूल्य है। <Directory "docroot here">...</Directory>विकल्प स्ट्रिंग के लिए अनुभाग की सामग्री की जाँच करें । यदि विकल्प अनुपलब्ध हैं - स्ट्रिंग जोड़ें Options FollowSymLinks, यदि मौजूद हैं, लेकिन FollowSymLinks नहीं है - तो इस पैरामीटर को जोड़ें जैसे smth है Options Indexes FollowSymLinks। कॉन्फ़िगर को संशोधित करने के बाद अपाचे को पुनरारंभ करें। परीक्षा परिणाम, यहां लिखें

  2. अपाचे डॉक्स पढ़ें


हाय, क्षमा करें - यह उत्तर बिल्कुल मदद नहीं करता है।
रोबर्टज

आप की कोशिश की क्या करना है यह? आप अपाचे कॉन्फिगर में फॉलोस्माइल्लिंक को डिसेबल कर देते हैं, सिम्क्लिनड रिसोर्सेस का उपयोग करने के लिए आपको साइट या डाइरेक्टरी स्तर पर सक्षम करना होगा
आलसी बेजर

और अंदर फ़ाइलों के लिए अनुमतियों की जाँच करें ~, DirectoryIndex फ़ाइल की उपस्थिति इसके बाद: कार्य क्रमिक रूप से हल करें, सभी संभावनाओं की जाँच करें
आलसी बेजर

1
फिर से - मैं आपकी टिप्पणियों में से कुछ भी करने में सक्षम नहीं हूं। मैं अपाचे के बारे में कुल नवाबी हूं (पिछले 6 घंटों के लिए मेरी गुगली के अलावा) मेरे पास कोई सुराग नहीं है कि उपयुक्त कंटेनर क्या है। Httpd.conf और httpd-vhost.conf को कॉन्फ़िगर करने का एक ठोस उदाहरण वास्तव में सहायक होगा।
रोबर्टज

@robertj - यह आपकी समस्या का समाधान है। आपको उस फ़ाइल को संपादित करने और @Lazy_Badger के अनुसार इसे संशोधित करने की आवश्यकता है। इसके तहत स्थित होना चाहिए <Directory /usr/share/web>। नोट बाद में, आप अपाचे का उपयोग कर पुनः आरंभ करने की जरूरत है किsudo /usr/sbin/apachectl restart
स्टीवन लू

0

कभी-कभी ऐसा हो रहा है:

  • आपका स्रोत फ़ोल्डर NTFS फ़ाइल सिस्टम पर है
  • यदि आप पहले से निर्मित फ़ोल्डर का उपयोग कर रहे हैं, जिसमें अलग-अलग अनुमतियाँ हैं, तो शायद पिछले मालिक या स्थापना से।

मैंने एक ext4 फ़ाइल सिस्टम पर एक नया फ़ोल्डर बनाकर और एक प्रतीकात्मक लिंक बनाकर इस समस्या को हल किया /var/www


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