अपाचे: मैक ओएस 10.5 पर अपाचे httpd पर सिमलिंक या उर्फ ​​सेट करने के लिए 755 पर्याप्त नहीं है?


15

मेरे मैक ओएस 10.5 मशीन पर, मैं http: // localhost / foo होना ~/Documentsपसंद ~/Documents/foo/htmlकरता हूं ।

पहली चीज जो मैंने करने का सोचा, वह इस प्रकार है:

Alias /foo /Users/someone/Documents/foo/html

<Directory "/Users/someone/Documents/foo/html">
    Options Indexes FollowSymLinks MultiViews

    Order allow,deny
    Allow from all
</Directory>

इससे मुझे 403 मना हो गया। Error_log में मुझे मिला:

[error] [client ::1] (13)Permission denied: access to /foo denied

प्रश्न में उप फ़ोल्डर में chmod 755 पहुंच है। मैंने http: //localhost/foo/test.php जैसे लाइक निर्दिष्ट करने की कोशिश की है , लेकिन यह भी काम नहीं किया। इसके बाद, मैंने सिमिलिंक मार्ग आज़माया।

में चला गया /Library/WebServer/Documentsऔर एक सिंबल बनाया ~/Documents/foo/html। दस्तावेज़ रूट है

Options Indexes FollowSymLinks MultiViews

यह अभी भी मुझे मिला 403 निषिद्ध:

Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/foo

इसे स्थापित करने के लिए मुझे और क्या चाहिए?

समाधान :

$ chmod 755 ~/Documents

सामान्य तौर पर, साझा किए जाने वाले फ़ोल्डर और उसके सभी पूर्वजों के फ़ोल्डर को wwwसेवा उपयोगकर्ता द्वारा देखा जा सकता है ।


इस समाधान को पोस्ट करने के लिए बहुत बहुत धन्यवाद - इसने वास्तव में उत्तर की तलाश में उम्र बिताने के बाद मेरी मदद की
टॉम्बा

@ तोम्बा कोई समस्या नहीं।
यूजीन योकोटा

जवाबों:


24

मैं शर्त लगाता हूं कि आप जिस तक पहुंचना चाहते हैं, उसके ऊपर कुछ निर्देशिका के पास अपाचे की अनुमति देने के लिए अनुमति नहीं है। उपयोगकर्ता बनें जो अपाचे के रूप में ( sudo -i -u apacheया जो भी) चल रहा है , फिर ब्याज की निर्देशिका में बदलने की कोशिश करें और lsयह। यदि आप (जैसा कि अपेक्षित हो) नहीं कर सकते हैं, तो इसके ऊपर की निर्देशिकाओं में एक-एक करके तब तक प्रयास करें, जब तक कि कोई आपको अंदर न ले जाए। उस की उपनिर्देशिका वह है जिसे o+xसेट करना होगा। बल्कि, कुल्ला, आवश्यकतानुसार दोहराएं।


1
हां, यदि 'साइटें' काम कर रही हैं, तो आपको शायद दस्तावेज़ों पर एक सही समस्या है, अगर 'साइटें' काम नहीं कर रही हैं, तो संभवतः आपके उपयोगकर्ता निर्देशिका पर एक सही समस्या है (यह फ़ाइलवालों के साथ संलग्न हो सकती है)
त्रिज्या

1
~ / दस्तावेज़ 700 थे।
यूजीन योकोटा

अगर मैं sudo -i -u _wwwOS X पर चलता हूं (चूंकि Apache उपयोगकर्ता OS X पर डिफ़ॉल्ट अपाचे कॉन्फिगर के द्वारा _www है), तो मैं करता whoamiहूं, मुझे अभी भी मेरा उपयोगकर्ता नाम नहीं है, _www
जेसन S

सूडो के साथ किसी अन्य उपयोगकर्ता को पूरी तरह से बदलने के लिए, मैं '-' का उपयोग खुद करता हूं: sudo - www-data(उबंटू के लिए)।
एलेक्सिस विलके

2

उपयोग +FollowSymlinks

Alias /foo /Users/someone/Documents/foo/html

<Directory "/Users/someone/Documents/foo/html">
    Options +Indexes +FollowSymLinks +MultiViews

    Order allow,deny
    Allow from all
</Directory>

Httpd.apache.org/docs/2.0/en/mod/core.html#options के अनुसार , "यदि विकल्प निर्देश पर सभी विकल्प + या - प्रतीक द्वारा पूर्ववर्ती हैं, तो विकल्प विलीन हो जाते हैं।" यह कैसे मदद करने जा रहा है ~ / दस्तावेज 700 किया जा रहा है?
यूजीन योकोटा

AFAIK FollowSymLinks विकल्प को सक्षम नहीं करता है, केवल इसे निर्देशिका पदानुक्रम के निचले स्तर पर सक्षम करने की अनुमति देता है।
डेव चेनी

1
यह मेरे लिए सही उत्तर था। मैंने / etc / apache2 / उपयोगकर्ताओं में conf फ़ाइल को संशोधित किया, और FollowSymLinks (+ के बिना) की अनुमति दी। पुनः आरंभ करना याद रखें।
अतिमहत्वाकांक्षी

1

यह सुनिश्चित करने के लिए जाँच करें कि फ़ाइल वॉल्ट सक्षम नहीं है। मुझे भी यही समस्या थी। मैंने वह सब कुछ आजमाया जो मुझे मिल सकता था। कुछ भी काम नहीं किया। लेकिन यह पता लगाने की कोशिश करने के एक घंटे के बाद, मुझे याद आया कि मैंने फ़ाइल वॉल्ट सक्षम किया था।

इसे अक्षम करने से समस्या हल हो गई।


1

सिमलिंक स्वामित्व की जाँच करें। चूंकि आप Mac OS X पर हैं, तो सिम्लिंक मालिकों को बदला जा सकता है। में /Library/WebServer/Documentsकरते हैंls -l

यदि आपका सिम्लिंक को ~/Documents/foo/htmlकॉल fooकिया जाता है और उसके पास अनुमतियाँ हैं

lrwxr-xr--  1 root  wheel 27  2 Nov 17:00 foo -> /Users/username/Documents/foo/html

फिर OS X पर डिफ़ॉल्ट रूप से अपाचे _www उपयोगकर्ता और _www समूह के रूप में चलता है, इसलिए उपर्युक्त मामले में यह सिम्लिंक को पीछे करने में सक्षम नहीं होगा ~/Documents/foo/html

man 8 chownअपने सिस्टम टर्मिनल पर रन करें, या इसे ऑनलाइन मैन चॉइन करें

आप देखेंगे कि -hविकल्प का उपयोग करने से यह सिम्लिंक के स्वामित्व को बदल देगा, बजाय इसके कि यह इंगित करता है फ़ाइल के लिए (यह स्रोत है)। तब आप कुछ ऐसा कर सकते हैं

sudo chown -h :_www foo 

यह simlink को बदल देगा

lrwxr-xr--  1 root  _www 27  2 Nov 17:02 foo -> /Users/username/Documents/foo/html

और अपाचे _www समूह लिंक को पार करने में सक्षम होगा।


0

अपने उपयोगकर्ता (किसी) पर अधिकार देखने के लिए अपनी / उपयोगकर्ता निर्देशिका (ls -l / उपयोगकर्ता) की जाँच करें।
इसके अलावा 'साइट' निर्देशिका स्थानीयहोस्ट / ~ किसी पर सही ढंग से उपलब्ध है?


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