Apache2 userdir सक्षम है, लेकिन फिर भी उसकी कोई पहुंच नहीं है


9

मैं अपने कुबंटू 13.04 लैपटॉप पर एक अपाचे सर्वर स्थापित करने की कोशिश कर रहा हूं। मैंने Apache2 पैकेज स्थापित किया है और sudo a2enmod userdir; sudo service apache2 restartफिर भी जब मैं यात्रा करता हूं http://localhost/~user, तो यह कुछ इस तरह कहता है:

Forbidden

You don't have permission to access /~user on this server.

Apache/2.2.22 (Ubuntu) Server at localhost Port 80

के परिणाम tail /var/log/apache2/access.log

127.0.0.1 - - [02/Aug/2013:16:22:01 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:16:22:02 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /~kaiyin HTTP/1.1" 403 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:36:26 +0200] "GET /favicon.ico HTTP/1.1" 404 499 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:36:26 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /~kaiyin HTTP/1.1" 403 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"

के परिणाम tail /var/log/apache2/error.log

[Fri Aug 02 21:05:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:05:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:54 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:54 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico

क्या आपके पास public_htmlउपयोगकर्ता के लिए एक निर्देशिका है? क्या अपाचे चलाने वाले उपयोगकर्ता को इसे पढ़ने की अनुमति है?
जोर्डन

@ जोर्डनम हां, मैंने इसे 755 में सेट किया है, 777 भी आजमाया है।
qed

जवाबों:


8

public_htmlनिर्देशिका इस तरह उनकी अनुमतियाँ की आवश्यकता है ताकि उपयोगकर्ता कि अपाचे एक्सेस कर सकते हैं के रूप में चल रहा है कि यह:

$ chmod -R 755 ~/public_html

अभी भी काम नहीं है?

यदि आप अपने अपाचे त्रुटि लॉग में देखते हैं, तो आपको इस तरह एक पंक्ति दिखाई दे सकती है:

[शुक्र अगस्त ०२ २१:०६-२०१३] [त्रुटि] [ग्राहक १२.0.०.०.१] (१३) अनुमति से इनकार: / ~ kaiyin से इनकार

यह आपको बता रहा है कि इस उदाहरण में अपाचे को आपके उपयोगकर्ता की निर्देशिका (~ kaiyin) पर नेविगेट करने की अनुमति नहीं है।

इसे कैसे ठीक करें?

आपको यह सुनिश्चित करने की आवश्यकता है कि रीड + एक्ज़िट बिट्स एक समूह के लिए सेट किए गए हैं जो अपाचे का सदस्य है या अन्य पढ़े गए + एग्ज़िक्यू बिट्स उपयोगकर्ता की निर्देशिका पर सेट किए गए हैं ताकि अपाचे public_htmlनीचे फ़ोल्डर तक पहुंच सके ।

उदाहरण

/home
|-- [drwxr-x---]  /home/sam

/home/sam
|-- [drwxr-xr-x]  /home/sam/public_html

संदर्भ


मैं पहले ही ऐसा कर चुका हूं, लेकिन मुझे अभी भी 403 मना है।
qed

@CravingSpirit - एपाचे लॉग्स ( /var/log/httpd/access.log) और ( /var/log/httpd/error.log) को देखने के लिए कि क्या कोई अतिरिक्त संदेश हैं।
स्लम

मैंने पोस्ट में लॉग जोड़ा है।
qed

@CravingSpirit - ~ kaiyin` पर दिए गए अभिगमन पर ध्यान दें? Apache के उपयोगकर्ता के पास उपयोगकर्ताओं की शीर्ष स्तर निर्देशिकाओं तक पहुँच नहीं है। आपको अधिकारों को पढ़ने + निष्पादित करने की आवश्यकता है ताकि यह उन तक पहुंच सके।
स्लम

2
वास्तव में, आपको लगभग निश्चित रूप से 755 की आवश्यकता नहीं है; 711 या यहां तक ​​कि 710 समूह www-data के माता-पिता पर करना चाहिए public_html; यह public_html पर भी करेगा यदि आपको फ़ाइल लिस्टिंग की आवश्यकता नहीं है, अन्यथा Apache को भी पढ़ना होगा (इसलिए 711/10 के बजाय 755/750)।
एक CVn

1
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

  <Directory /home/*/public_html>
    AllowOverride All
    Options MultiViews Indexes SymLinksIfOwnerMatch
    <Limit GET POST OPTIONS>
      # Apache <= 2.2:
      #Order allow,deny
      #Allow from all

      # Apache >= 2.4:
      Require all granted
    </Limit>
    <LimitExcept GET POST OPTIONS>
      # Apache <= 2.2:
      #Order deny,allow
      #Deny from all

      # Apache >= 2.4:
      Require all denied
    </LimitExcept>
  </Directory>
</IfModule>

सुनिश्चित करें कि आपके पास सही सेटिंग्स हैं /etc/apache2/mods-enabled/userdir.conf। मुझे मेरे public_html को चकमा देने के बाद अनुमति से वंचित किया जा रहा था और फिर जाँच करने का निर्णय लिया गया userdir.conf। मैंने देखा कि पहले के अपाचे संस्करणों के लिए सेटिंग्स थी, साथ ही नए भी। मुझे पता था कि मैं नवीनतम चला रहा था इसलिए नई सेटिंग्स को सक्षम किया और अब सब ठीक चल रहा है


अपाचे <= 2.2 जानकारी को शामिल करने के लिए धन्यवाद, यही कारण है कि यह मेरे लिए काम नहीं कर रहा था और मुझे इसकी आवश्यकता थी!
वाहफुन्हा

0

इसके अलावा, आप /etc/hostsअस्थायी URL की आवश्यकता को समाप्त करने के लिए फ़ाइल का उपयोग कर सकते हैं । यदि थीम या प्लगइन में पूर्ण URL का संदर्भ है (यदि आपके पास कोई है) तो साइट उचित प्रारूप में सामग्री नहीं दिखाएगी।

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