Apache "क्लाइंट सर्वर कॉन्फ़िगरेशन से वंचित", निर्देशिका (vhost कॉन्फ़िगरेशन) तक पहुँच की अनुमति देने के बावजूद


38

उबंटू पर अपाचे में मैंने एक vhost स्थापित किया है, लेकिन ब्राउज़र में मुझे "403 एक्सेस वर्जित" त्रुटि मिलती रहती है; लॉग कहता है " क्लाइंट सर्वर कॉन्फ़िगरेशन से इनकार किया: / घर / रीमिक्स / "।

ऑनलाइन समाधान की तलाश में मुझे निर्देशिका पहुंच (सभी से अनुमति, आदि) के बारे में कई पोस्ट मिलीं, लेकिन जहां तक ​​मुझे पता है कि मैंने पहले ही ऐसा किया था। में httpd-vhosts.conf वहाँ निम्नलिखित कोड है:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/opt/lampp/htdocs/"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "/home/remix/"
    ServerName testproject
    ServerAlias testproject
    <Directory "/home/remix/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

मैंने भी जोड़ा है

127.0.0.1    testproject

/ etc / मेजबान फ़ाइल के लिए।

इसके अलावा, / होम / रीमिक्स / फ़ोल्डर में एक index.html फ़ाइल है और httpd.conf में vhosts सक्षम हैं।

क्या ऐसा कुछ है जो मैं नहीं देख रहा हूँ?

संपादित करें: यह Apache error_log प्रविष्टि है:

[Sat Aug 18 09:15:32.666938 2012] [authz_core:error] [pid 6587] 
[client 127.0.0.1:38873] AH01630: client denied by server configuration: /home/remix/

अपाचे की त्रुटि लॉग में क्या है?
शेन मैडेन

आह, मुझे लगा कि मैं कुछ भूल गया ... मैंने इसे मूल पोस्ट में जोड़ दिया है।
रेमीएक्स

आप अपाचे के किस संस्करण का उपयोग कर रहे हैं?
शेन झुंझलाना

अपाचे / 2.4.2 (यूनिक्स)
रेमीएक्स

जवाबों:


65

अपना प्राधिकरण कॉन्फ़िगरेशन बदलें:

<Directory /home/remix/>
    #...
    Order allow,deny
    Allow from all
</Directory>

... उसी के अपाचे 2.4 संस्करण के लिए।

<Directory /home/remix/>
    #...
    Require all granted
</Directory>

अन्य परिवर्तनों की जानकारी के लिए अपग्रेड ओवरव्यू दस्तावेज़ की समीक्षा करें - जो आपको बनाने की आवश्यकता हो सकती है - और इस बात से अवगत रहें कि Google पर (साथ ही साथ इस साइट पर) आपको जो भी पता चलता है, उनमें से अधिकांश का उदाहरण और सहायता 2.2 है।


2
अगर मेरे पास समय होता, तो मैं इस बारे में एक बग दर्ज करता, क्योंकि httpd -t का कहना है कि पुराने सिंटैक्स का उपयोग करने में कोई समस्या नहीं है, और न ही httpd -S। मेरे दिमाग में, कॉन्फ़िगरेशन चेकर का पूरा बिंदु यह है कि यह समस्याओं की ओर इशारा करता है! ... यदि आपके पास एक निर्देशिका है जो आप w / o को संदर्भित कर रहे हैं, तो यह काम नहीं करेगा - उतना ही सरल। ... जवाब पर अंगूठे।
रिचर्ड टी।

4

निर्देशिका पर अनुमतियों की जाँच करें। मैं शर्त लगाऊंगा कि यह किसी और के लिए उपयोग करने से इनकार करने के लिए तैयार है, लेकिन उदाहरण के लिए:

$ ls -ld /home/remix
drwx------ 92 remix remix 4096 Aug 17 22:59 /home/remix

अगर आप drwx------बिल्कुल देखें , तो यह मामला है। इसे चलाकर ठीक करें:

chmod a+x /home/remix

मैं देखता हूं: drwxrwxr-x 2 रीमिक्स रीमिक्स 4096 अगस्त 16 09:36 / घर / रीमिक्स। मैंने वैसे भी कमांड की कोशिश की, बिना प्रभाव के।
रेमीएक्स

आह, उन्हें सब नहीं जीत सकते।
माइकल हैम्पटन

3

सुनिश्चित करें कि httpdसेवा चलाने वाले उपयोगकर्ता के पास इस निर्देशिका तक पहुंच है।


मुझे यकीन नहीं है कि httpd के लिए उपयोगकर्ता कौन है या कैसे जांचना है, लेकिन हर कोई (उपयोगकर्ता / समूह / अन्य) पढ़ सकता है।
रेमीएक्स

Http के लिए httpd.conf की जाँच करें User
cpt.Buggy

1
ठीक है यह कहता है 'उपयोगकर्ता कोई नहीं', और 'समूह समूह'। मैंने इसे 'उपयोगकर्ता रीमिक्स' (जो कि फ़ोल्डर का स्वामी है) में बदलने की कोशिश की, लेकिन यह भी मदद नहीं करेगा।
रेमीएक्स

1

"सर्वर कॉन्फ़िगरेशन से वंचित ग्राहक" का अर्थ है कि लिनक्स सर्वर खुद फ़ाइल तक पहुंच को रोक देता है, अपाचे को नहीं।

यदि बदलती अनुमतियों / स्वामित्व / समूह सदस्यता के माध्यम से पहुंच प्रदान करना समस्या का समाधान नहीं करता है, तो मार्ग का कारण SELinux हो सकता है जो किसी भी फ़ोल्डर तक पहुंच को रोक सकता है, जिसमें उपयुक्त SE Linux संदर्भ नहीं है जैसा कि 'सेलिनक्स के लिए एक अपाचे डॉक्यूमेंट को स्थानांतरित करना' में समझाया गया है ।

  • यदि अस्थायी रूप से SELinux को अक्षम करने setenforce 0से फ़ाइल सुलभ हो जाती है
  • जबकि SELinux को पुन: सक्षम करने setenforce 0से फाइल फिर से सुलभ नहीं होती है

फिर यह सुनिश्चित करने के लिए कि फ़ाइल अनुमतियाँ जो भी हो, SELinux द्वारा पहुँच वर्जित है।


0

एक और सरल (लेकिन मुश्किल गच्चा) जो लोगों के लिए यह समस्या पैदा कर सकता है जब उपयोगकर्ता निर्देशिकाएं / घर / * में नहीं होती हैं लेकिन कहीं और होती हैं जैसे / nethome / *

आपूर्ति की गई userdir.conf में कुछ इस तरह है: (लेकिन Userdir के साथ: अक्षम)

$ cat /etc/httpd/conf.d/userdir.conf 
<IfModule mod_userdir.c>
    UserDir enabled
    UserDir public_html
</IfModule>

<Directory "/home/*/public_html">
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

निर्देशिका विनिर्देश मानता है ~ उपयोगकर्ता == / घर / उपयोगकर्ता। उपयोगकर्ता होम डाइरेक्टरी वास्तव में कहां हैं, इसके लिए सिर्फ डायरेक्टरी स्पेसिफिकेशन बदलें या जोड़ें।

बहुत सुंदर है, लेकिन मुझे यह पता लगाने में थोड़ा समय लगा !! :-P DUH!

उदा ~ उपयोगकर्ता == / nethome / उपयोगकर्ता

<Directory "/nethome/*/public_html">
    AllowOverride All
    Options MultiViews Indexes Includes FollowSymLinks
    Require all granted
</Directory>

उस निर्देशिका पर आम तौर पर अधिक खुला प्राधिकरण भी देखें।

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