अपाचे httpd वर्चुअल होस्ट में बुनियादी प्रमाणीकरण कैसे कॉन्फ़िगर करें?


48

मैं अपाचे http का उपयोग करके व्यापारिक पहुंच को कॉन्फ़िगर करने की कोशिश कर रहा हूं। इसके लिए प्रमाणीकरण की आवश्यकता है। मेरा /etc/apache2/sites-enabled/mercurialऐसा दिखता है:

NameVirtualHost *:8080

<VirtualHost *:8080>
    UseCanonicalName Off
    ServerAdmin  webmaster@localhost
    AddHandler cgi-script .cgi
    ScriptAliasMatch ^(.*) /usr/lib/cgi-bin/hgwebdir.cgi/$1
</VirtualHost>

इंटरनेट पर मैंने पढ़ा हर ट्यूटोरियल मुझे इन पंक्तियों को सम्मिलित करने के लिए कहता है:

AuthType Basic
AuthUserFile /usr/local/etc/httpd/users

लेकिन जब मैं इसे करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है:

# /etc/init.d/apache2 reload
Syntax error on line 8 of /etc/apache2/sites-enabled/mercurial:
AuthType not allowed here

मेरा डिस्ट्रो टर्नकी लिनक्स रेडमाइन नामक एक स्वनिर्धारित उबंटू है

जवाबों:


73

आपको इसे स्थान निर्देश के अंदर रखना चाहिए:

<VirtualHost *:8080>

<Location /> #the / has to be there, otherwise Apache startup fails
            Deny from all
            #Allow from (You may set IP here / to access without password)
            AuthUserFile /usr/local/etc/httpd/users
            AuthName authorization
            AuthType Basic
            Satisfy Any # (or all, if IPs specified and require IP + pass)
                        # any means neither ip nor pass
            require valid-user
</Location>
...
</VirtualHost>

1
यह मेरे लिए काम नहीं करता है। <Location /opt/mcmap/shapefiles.php> AuthType Kerberos AuthName KerberosLogin KrbServiceName HTTP/intranet.spectrumasa.com KrbMethodNegotiate On KrbMethodK5Passwd On KrbAuthRealms DOMAIN.COM Krb5KeyTab /etc/httpd/conf/intranet.keytab require valid-user Options Indexes MultiViews FollowSymLinks AllowOverride All Order allow,deny Allow from all SetOutputFilter DEFLATE </Location>
shorif2000

1
अपाचे डॉक्टर पृष्ठ यह सब समझाता है, लेकिन गुस्सा कभी भी आपको पूर्ण उदाहरण नहीं देता है। मैंने उनके उदाहरण के हिस्से की नकल की, लेकिन वह require valid-userहिस्सा छूट गया । एक पूर्ण उदाहरण एक अद्भुत चीज हो सकती है। धन्यवाद।
बुटेल बटुकस

1
@sharif होना चाहिए <स्थान />, yourhost.com/ की जड़ यूआरएल के लिए उपयोग जिसका अर्थ है कि प्रमाणन विन्यास की आवश्यकता होती चाहिए
agbb

1
मुझे <Location />किसी भी मामले में विन्यास फाइल को लोड करते समय सिंटैक्स त्रुटि प्राप्त नहीं करने की आवश्यकता थी ।
पर्स

3
"बहुत परेशानी से बचने के लिए" ... के आंतरिक लॉग संदेश के साथ क्यों <Location /> संपादित किया गया था <Location>, लेकिन उत्तर में वास्तविक कारण के बारे में कुछ भी नहीं बता रहा है? अपाचे में एक <Location>निर्देश (यानी एक स्थान के बिना ) जैसी कोई चीज नहीं है । जो निश्चित रूप से अब परेशानी का कारण बनता है। ;) (ऊपर उदाहरण देखें।)
एसजेड।

9

मैं ubuntu 10.04 पर Apache2 चला रहा हूं - एक ही समस्या और समाधान के लिए धन्यवाद। मैंने पाया कि मुझे कॉन्फ़िगरेशन को अंदर रखना था/etc/apache2/apache2.conf

आप htpasswd का उपयोग करके उपयोगकर्ता नाम और पासवर्ड उत्पन्न कर सकते हैं। नई फ़ाइल:

$ htpasswd -c /srv/auth/.htpasswd squire

मौजूदा फ़ाइल में संलग्न करने के लिए:

$ htpasswd -b /srv/auth/.htpasswd squire2 tickleme2

7

आप किसी स्थान या निर्देशिका की सुरक्षा कर सकते हैं। एक निर्देशिका के लिए कुछ इस तरह जोड़ें:

<Directory /some/dir/cgi-bin/>
    Options +ExecCGI
    AddHandler cgi-script .cgi
    AuthType Basic
    AuthName 'Private scripts'
    AuthUserFile '/some/other/dir/.htpasswd'
    Require valid-user
</Directory>

आप बेहतर नियंत्रण के लिए निर्देश Denyऔर जोड़ भी सकते हैं Allow


4

ऐसा लगता है कि आप प्रमाणीकरण सेटिंग्स को निर्दिष्ट कर रहे हैं VirtualHost। आमतौर पर, ये सेटिंग्स Directoryनिर्देश के तहत निर्दिष्ट की जाती हैं ।

आप .htaccesssफ़ाइलों का उपयोग भी कर सकते हैं , लेकिन Apache conf में निर्दिष्ट करना एक अच्छा डिफ़ॉल्ट है, क्योंकि इसमें एक्सपोज़र कम है।

अपाचे प्रलेखन


3

मैं ubuntu 10.10 पर Apache2 चला रहा हूं। मुझे ऊपर दिए गए सभी समाधानों में समस्या आ रही है, लेकिन यह अच्छी तरह से (अपाचे डॉक्स से) काम कर रहा है:

<निर्देशिका / var / www />
  विकल्प अनुक्रमणिका FollowSymLinks MultiViews
  ऑवरऑवरराइड ऑल
  आदेश की अनुमति, इनकार
  सभी से अनुमति
  प्रमाण मूल
  प्रामाणिक "प्रतिबंधित"
  AuthBasicProvider फ़ाइल
  AuthUserFile / etc / users
  उपयोगकर्ता आगंतुक की आवश्यकता है
</ निर्देशिका>

उपरोक्त उत्तरों से सबसे बड़ा अंतर "फ़ाइल" के लिए AuthBasicProvider निर्देशात्मक सेट और वास्तविक उपयोगकर्ता नाम से पहले "उपयोगकर्ता" बिट सहित निर्देशात्मक निर्देश प्रतीत होता है।

आशा है कि यह किसी की मदद करता है।


3

हम अपाचे की मेमोरी अनुकूलित संस्करण चला रहे हैं, और इस समस्या का सामना कर रहे हैं।

यह निम्न पंक्ति अपाचे विन्यास में मौजूद नहीं होने के कारण था:

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