मैक ओएस एक्स लोकलहोस्ट पर 403 निषिद्ध त्रुटि


22

मैं मैक ओएस एक्स 10.6 पर सिस्टम प्राथमिकताओं में वेब शेयरिंग की स्थापना की और लिंक यह मुझे वहाँ दिया क्लिक किया। Unfortuantely, अपाचे मुझे इस 403 त्रुटि दिया:

मना किया हुआ

आप इस सर्वर पर पहुँच /~myusername/index.html करने की अनुमति नहीं है।

प्रवेश लॉग प्रदर्शित करता है: 10.0.1.2 - - [30/Jun/2010:16:25:15 -0700] "GET /~myusername/ HTTP/1.1" 403 210

त्रुटि लॉग प्रदर्शित करता है: [Wed Jun 30 16:26:09 2010] [error] [client 10.0.1.2] client denied by server configuration: /Users/myusername/Sites/

उत्सुकता से पर्याप्त, http: // localhost तक पहुँच ठीक है। यह सिर्फ उपयोगकर्ता फ़ोल्डरों की दो कि मैं के साथ, अन्य उपयोगकर्ता फ़ोल्डर, जो अपने सिस्टम का उन्नयन से अधिक नया है, ठीक काम कर रहा है परेशानी हो रही हैं, उनके साथ है।

मैं तेंदुए में पहले तो मैं में सब कुछ chmodded मेरी मशीन पर यह काम कर लिया है, ~/Sites755 है, जो किसी भी अच्छे नहीं किया। कोई सुझाव? मुझे लगता है मैं काम पूरा हुआ कुछ मेरी मशीन है कि इस वजह से, के बाद से मैं एप्पल कुछ इस तरह पर खिलवाड़ कल्पना नहीं कर सकते है।

मैंने इन निर्देशों के साथ PEAR की स्थापना की , लेकिन मुझे नहीं पता कि क्या इसका कारण हो सकता है।


क्षमा करें यदि यह एक गूंगा प्रश्न है, लेकिन वास्तव में आप किस URL पर जा रहे हैं? मैं पूछता हूं क्योंकि URL "/~myernername/index.html" एक विषम है - यह या तो "~ myusername / index.html" होना चाहिए, या यह " localhost / ~ myusername / index.html " होना चाहिए , या कुछ और समान। बस से शुरू / और फिर ~ myusername अजीब जोड़ने बदबू आ रही है। इसका उत्तर देने के बजाय (या इसके बजाय), आप Console.app (/Applications/Utilities/Console.app) में जा सकते हैं और Apache2 access_log और error_log पा सकते हैं। उसे ऊपर खींचो, शायद प्रदर्शन साफ़ करें, और फिर अपने URL को यह देखने के लिए पुनः प्रयास करें कि त्रुटि लॉग आपको क्या बताता है।
माइकल एच।

@khedron: URL लोकलहोस्ट / ~ myusername / index.html है , लेकिन त्रुटि /~myusername/index.html भाग प्रदर्शित करती है
waiwai933

ठीक है, बस जाँच। अपाचे लॉग कंसोल (कंसोल) में क्या कहता है?
माइकल एच।

@khedron: मैंने प्रश्न में पहुँच और त्रुटि लॉग अप किया है। क्या कोई और है?
waiwai933

1
मुझे आपके समान ही समस्या है, और मैं अभी करता हूं: chmod 777 / Applications / XAMPP / htdocs / myusername, यह मेरे लिए काम करता है
वसीम Sboui

जवाबों:


22

इस समस्या के लिए Apple के पास एक समर्थन दस्तावेज़ है । समस्या दूर करने की एक फ़ाइल बनाने होते हैं /etc/apache2/users/yourusername.conf( yourusername खाता जा रहा है छोटा नाम , उदाहरण के लिए danielbeck- यह आम तौर पर में अपने घर फ़ोल्डर का नाम है /Users) के बाद सामग्री के साथ:

<Directory "/Users/yourusername/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

बाद में, sudo chown root:wheel /etc/apache2/users/yourusername.confअपाचे को चलाएं और पुनः आरंभ करें।


और अपने अपाचे को पुनः आरंभ करें, बस sudo apachectl restartअपने टर्मिनल में निष्पादित करें।
नील

15

फ़ाइल को देखने के लिए अपाचे के लिए, अपाचे के रूप में चलने वाला उपयोगकर्ता (शायद wwwया _www) इन उपयोगकर्ताओं की साइट निर्देशिकाओं तक पहुंच होनी चाहिए। सामग्री तक पहुंच को पढ़ने / निष्पादित करने के लिए ~/Sitesपर्याप्त नहीं है, क्योंकि इसे /नीचे से पथ तक जाने की अनुमति है ~/Sites। तो सुनिश्चित करें कि /, /Users, /Users/myusername, और /Users/myusername/Sitesसभी कम से कम राशि a+xकी अनुमति (निर्देशिकाओं पर अमल सा है कि उपयोगकर्ता वर्ग निर्देशिका पार करने के लिए अनुमति देता है, भले ही पढ़ें उपयोग की अनुमति नहीं है)।

ls -lde / /Users/ /Users/myusername/ /Users/myusername/Sites

यदि उन निर्देशिकाओं में से कोई भी अंतिम xसेट ("अन्य" के लिए एक) नहीं दिखाती है , तो chmod a+x ...उस निर्देशिका के लिए इसे सेट करने के लिए कुछ का उपयोग करें ।

यदि उन निर्देशिकाओं में से किसी के लिए एसीएल दिखाता है कि उपयोगकर्ता wwwको विशेष रूप से उपयोग से वंचित किया गया है, तो chmodएसीएल को ठीक करने के लिए उपयुक्त तर्कों का उपयोग करें ।


निष्पादन निर्देशिका उन सभी निर्देशिकाओं के लिए सेट की गई है, लेकिन मुझे नहीं पता कि कैसे जांचा जाए कि किसी विशिष्ट उपयोगकर्ता को एक्सेस से वंचित किया गया है या नहीं।
waiwai933 23

"Ls -lde" में यही "e" है। यह प्रत्येक फाइल के लिए एसीएल (यदि कोई हो) को सूचीबद्ध करता है।
स्पाइफ

2
755 को chmod करने के लिए / Users / myusername पर अनुमतियाँ बदलना मेरे लिए समस्या तय की।
मार्क

क्या यह कमांड आपके रूट डायरेक्टरी, साथ ही / यूजर्स डायरेक्टरी आदि को एक्सेस करने की _www यूजर को अनुमति नहीं देता है? यह संभवतः सही नहीं हो सकता है, क्या यह है? उन सभी सुरक्षा छेद एक फ़ोल्डर में एक पृष्ठ साझा करने के लिए? क्या यह व्यवहार कहीं दस्तावेज है?
टॉम लियाना

अपनी स्वयं की टिप्पणी का उत्तर देते हुए, मुझे यह उत्तर मिला ( serverfault.com/a/293063/14970 ) जो इस व्यवहार पर विश्वसनीय प्रलेखन के लिए एक लिंक प्रदान करता है: wiki.apache.org/httpd/13PermissionDenied
टॉम लियानजा

5

संदर्भ के लिए, मैंने अभी इससे निपटा है, और यहां किसी भी उत्तर ने मेरे विशिष्ट मामले में काम नहीं किया है। मैं आभासी मेजबानों को कॉन्फ़िगर कर रहा था, लेकिन इससे भी महत्वपूर्ण बात, मुझे वास्तव में काम करने के लिए अपनी htaccess फ़ाइलों की आवश्यकता थी।

मैंने अपनी /etc/apache2/users/USERNAME.conf फ़ाइल में "AllowOverride None" को "AllowOverride All" में बदल दिया, और मेरी सभी साइटें निषिद्ध होने लगीं।

मैंने इसे वापस बदल दिया और फिर इसे केवल मेरी httpd-vhosts.conf फ़ाइल में एक साइट के लिए बदल दिया, और केवल उस साइट को निषिद्ध कर दिया गया।

लॉग को देखने और समस्या को देखने के बाद url पुनर्लेखन और फॉलोस्माइंलिंक की कमी के साथ, मैं USERNAME.conf फ़ाइल पर वापस चला गया। मैं "AllowOverride All" पर "AllowOverride All" स्विच करता हूं और अगली पंक्ति में "विकल्प + फ़ॉलोसमलाइंक" जोड़ता हूं।

चीजें काम करने लगीं। मैं विंडोज़ पर xampp का उपयोग करके आया था और इसमें इन सेटिंग्स का एक बहुत पहले से ही मेरे जैसे डमी के लिए सर्वर-वाइड सेट था।


1
बहुत बहुत धन्यवाद, काफी कुछ समय बिताया है जो पता चल रहा है, कुछ समय के लिए अपाचे / PHP के साथ
छेड़छाड़ करने की ज़रूरत नहीं है

1
हां, Options +FollowSymLinksएक आकर्षण की तरह काम किया।
एगारी जूल

2

मेरे पास एक ही समस्या थी: मेरा (पुराना) खाता सुलभ नहीं था, लेकिन एक अन्य उपयोगकर्ता का खाता जो लायन में अपग्रेड होने के बाद बनाया गया था, ठीक काम किया।

यह सुनिश्चित करने के बाद कि आपका /etc/apache2/users/USERNAME.conf ऐसा दिखता है:

<Directory "/Users/USERNAME/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

एक sudo chown root करें: wheel /etc/apache2/users/USERNAME.conf

ऐसा लगता है कि यह अनुमति सेटिंग OS अपग्रेड के दौरान सेट नहीं की गई है, और Apache उपयोगकर्ता कॉन्फिग फ़ाइल को पढ़ नहीं सकता है, और एक त्रुटि फेंकता है।

कम से कम इसने मेरे लिए इसे हल किया।


1
और शायद sudo apachectl restartउसके बाद दौड़ें ।
अर्जन

यह मेरे लिए 10.7.5 चल रहा है। निर्देशिका पथ मेरे स्थानीय वेब रूट की ओर इशारा नहीं कर रहा था, एक बार जब मैंने अपडेट किया और एपाचे को फिर से शुरू किया तो सब कुछ काम कर गया। क्या अजीब बात है कि पथ एक साल से अधिक समय से गलत है और पूरे समय काम कर रहा था। मुझे बस आज नीले रंग से त्रुटि मिली।
सुपरजेब

2

शेर के लिए अद्यतन 10/2011 में मुझे भी जोड़ना था

UserDir ने सक्षम किया इसलिए my /etc/apache2/extra/httpd-userdir.conf इस प्रकार है:

UserDir enabled 
UserDir Sites

#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf

<IfModule bonjour_module>
   RegisterUserSite customized-users
</IfModule>

1

प्रारंभिक प्रश्न टिप्पणियों से निरंतर बातचीत - अपनी /etc/apache2/httpd.confफ़ाइल देखें। मेरी मशीन पर, मेरे पास यह है:

# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf

मुझे संदेह है कि आपकी टिप्पणी बाहर की है। जब मैं 10.5 से 10.6 की ओर बढ़ रहा हूं, तो मैं इसे याद रखना चाहता हूं और डिफ़ॉल्ट बदल गया है।

यह शायद स्पष्ट है, लेकिन आपको sudoफ़ाइल को संपादित करने के लिए उपयोग करना होगा क्योंकि यह रूट के स्वामित्व में होगा।


1
नहीं, मेरा बिल्कुल तुम्हारा जैसा दिखता है।
waiwai933

1

मेरा मामला XAMPP + Mac OS X 10.7 + ड्रॉपबॉक्स फ़ोल्डर में निर्देशिका (क्रॉस- ओवरफ़्लो में मेरे दूसरे प्रश्न को क्रॉस- रेफ़र करना)

403 पहुँच निषिद्ध अपाचे द्वारा रिपोर्ट किया जाता है, इसलिए, मैं में परिवर्तन उपयोगकर्ता के लिए ऊपर टिप्पणी पीछा /XAMPP/xamppfiles/etc/httpd.confसे, User nobodyकरने के लिए User my_user_name। Apache पुनरारंभ करें और यह ठीक काम करता है।


0

संभवतः आपके पास अनुक्रमणिका चालू नहीं है । यदि आपको नहीं है, तो आपको इंडेक्स फ़ाइल ( index.htmlया index.php) बनाने की आवश्यकता होगी या फ़ाइल को स्पष्ट रूप से निर्दिष्ट करना होगा, अर्थात http://localhost/~me/mypage.html


क्षमा करें, बस दोहरी जांच करने के लिए, मुझे लोकलहोस्ट / ~ myusername / index.html पर जाना चाहिए और मेरे साइट फ़ोल्डर में index.html नामक एक फ़ाइल है, है ना? यदि ऐसा है, तो 403 अभी भी हो रहा है।
waiwai933

~myusernameमेरा मानना ​​है कि आपको दौरा नहीं करना चाहिए । http://localhost/को इंगित करना चाहिए /Users/youruser/Sites/
जोश के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.