Vraag Hoe basisverificatie configureren in Apache httpd virtuele hosts?


Ik probeer kwiktoegang te configureren met behulp van Apache http. Het vereist authenticatie. Mijn /etc/apache2/sites-enabled/mercurial het lijkt op dit:

NameVirtualHost *:8080

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

Elke tutorial die ik op het internet lees, vertelt me ​​dat ik deze regels moet invoegen:

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

Maar als ik het doe, krijg ik de volgende foutmelding:

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

Mijn distro is een aangepaste Ubuntu genaamd Turnkey Linux Redmine


46
2018-03-30 14:50


oorsprong




antwoorden:


U moet dit in een locatierichtlijn plaatsen:

<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>

71
2018-03-30 15:33



dit werkt niet voor mij. <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
De apache-docpagina legt dit allemaal uit, maar geeft je nooit irritant een volledig voorbeeld. Ik kopieerde een deel van hun voorbeeld, maar miste het require valid-user deel. Een compleet voorbeeld kan iets geweldigs zijn. Bedankt. - Buttle Butkus
@sharif moet <Locatie /> zijn, wat betekent dat toegang tot de root-url van yourhost.com/ deze auth-configuratie vereist - agbb
ik had nodig <Location /> om in elk geval geen syntaxisfout te krijgen bij het laden van het configuratiebestand. - Perseids
Waarom was <Location />  bewerkt naar <Location> met een intern logbericht van "vast ... om veel problemen te voorkomen", maar niets te vertellen over de echte reden in het antwoord zelf? Er is niet zoiets als een <Location> richtlijn (dat wil zeggen één zonder een locatie) in Apache. Dat veroorzaakt nu zeker problemen. ;) (Zie bijvoorbeeld hierboven.) - Sz.


Ik gebruik Apache2 op ubuntu 10.04 - hetzelfde probleem en bedankt voor de oplossing. Ik vond dat ik de configuratie moest invoeren /etc/apache2/apache2.conf

U kunt de gebruikersnaam en het wachtwoord genereren met htpasswd. Nieuw bestand:

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

Om aan een bestaand bestand toe te voegen:

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

9
2018-05-24 17:31





U kunt een locatie of een directory beveiligen. Voeg voor een directory iets toe als:

<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>

Je kunt ook toevoegen Deny en Allow richtlijnen voor een fijnere controle.


7
2018-03-30 15:35





Het lijkt erop dat u de authenticatie-instellingen opgeeft binnen de VirtualHost. Meestal worden deze instellingen opgegeven onder de Directory richtlijn.

Je zou ook kunnen gebruiken .htaccesss bestanden, maar opgeven in de Apache conf is een goede standaard, omdat deze minder belicht is.

Apache-documentatie


4
2018-03-30 15:27





Ik gebruik Apache2 op ubuntu 10.10. Ik heb problemen ondervonden met alle bovenstaande oplossingen, maar dit werkte goed (van apache-documenten):

<Directory / var / www />
  Opties-indices FollowSymLinks MultiViews
  AllowOverride All
  Bestelling toestaan, ontkennen
  laat iedereen toe
  AuthType Basic
  AuthName "Beperkt"
  AuthBasicProvider-bestand
  AuthUserFile / etc / users
  Vereis gebruiker bezoeker
</ Directory>

Het grootste verschil met de bovenstaande antwoorden lijkt de AuthBasicProvider-instructie ingesteld op "file" en de Require-instructie inclusief de "user" bit voor de eigenlijke gebruikersnaam.

Ik hoop dat dit iemand helpt.


3
2018-02-15 02:19





We gebruiken een geheugengeoptimaliseerde versie van apache en zijn dit probleem tegengekomen.

Dit kwam doordat de volgende regel niet aanwezig was in de apache-configuratie:

LoadModule authz_user_module modules/mod_authz_user.so

3
2018-01-06 12:31