PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kennwortabfrage mit .htaccess



crystal_ice
29.03.09, 20:04
Hallo,

ich bin neu hier und habe gleich mal eine Frage :)

Ich habe einen Apache2 unter openSuSE 11.0 laufen. Dort habe ich ein Verzeichnis /srv/www/htdocs/test/ liegen, welches erst nach Eingabe von Benutzernamen und Kennwort geöffnert werden soll.

Nun habe ich mir nach Anleitung eine .htaccess-Datei folgenden Inhalts in das Verzeichnis /srv/www/htdocs/test/ gelegt:

AuthType Basic
AuthName "Interner Bereich"
AuthUserFile /srv/www/htdocs/test/.htpasswd
require user valid-user


Im gleichen Verzeichnis liegt auch die .htpasswd:

Test:B/vq3oqT.GE6s


Wenn ich nun versuche, h**p://localhost/test/ aufzurufen, dann bekomme ich keine Abfrage nach Username und Passwort, obwohl das doch eigentlich der Fall sein sollte.

Ich habe dann weitergelesen, man sollte eine Änderung in der httpd.conf vornehmen - also Änderung in /etc/apache2/httpd.conf vorgenommen:


# forbid access to the entire filesystem by default
<Directory /srv/www/htdocs/test>
Options None
AllowOverride All
Order deny,allow
Deny from all
</Directory>
# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>


... AllowOverride stand "None", das habe ich auf "All" gesetzt.

Apache neugestartet - kein Erfolg. Ich bekomme keine Abfrage, wenn ich die URL h**p://localhost/test/ abrufe.

Kann mir jemand sagen, was ich falsch gemacht bzw. vergessen habe?

zyrusthc
29.03.09, 23:05
Mal die Logs gecheckt?
Verwende mal in Zukunft die Code-Tags des Forums!


Greeez Oli

marce
30.03.09, 07:34
Den Bereich, den Du geändert hast solltest Du besser in Ruhe lassen - der Pfad dort stand bestimmt auf / - und der sollte so auch bleiben, ebenso das AllowOverride none.

Vermutlich (hab' gerade keinen Apache unter OS11 hier) gibt's irgendwo einen Config-Datei, in der div. vHosts definiert werden - in diesem solltest Du die erforderlichen Änderungn machen - poste dazu aber am besten mal die komplette relevante Apache-Konfig.

crystal_ice
30.03.09, 11:17
@zyrusthc: In den logs taucht nichts verdächtiges auf.


Den Bereich, den Du geändert hast solltest Du besser in Ruhe lassen - der Pfad dort stand bestimmt auf / - und der sollte so auch bleiben, ebenso das AllowOverride none.

Die Änderungen habe ich gemacht, weil es laut Anleitung notwendig ist (Zitat: In der Zeile AllowOverride muß statt dem Wert None der Wert All eingetragen werden, damit das Überschreiben der allgemeinen Regeln durch die .htaccess-Datei erlaubt ist.). Auch wenn ich die Einstellungen auf / und None zurücksetzte, funktioniert es nicht.


Vermutlich (hab' gerade keinen Apache unter OS11 hier) gibt's irgendwo einen Config-Datei, in der div. vHosts definiert werden - in diesem solltest Du die erforderlichen Änderungn machen - poste dazu aber am besten mal die komplette relevante Apache-Konfig.



### Global Environment ################################################## ####
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests.

# run under this user/group id
Include /etc/apache2/uid.conf

# - how many server processes to start (server pool regulation)
# - usage of KeepAlive
Include /etc/apache2/server-tuning.conf

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
ErrorLog /var/log/apache2/error_log

# generated from APACHE_MODULES in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/loadmodule.conf

# IP addresses / ports to listen on
Include /etc/apache2/listen.conf

# predefined logging formats
Include /etc/apache2/mod_log_config.conf

# generated from global settings in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/global.conf

# optional mod_status, mod_info
Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf

# optional cookie-based user tracking
# read the documentation before using it!!
Include /etc/apache2/mod_usertrack.conf

# configuration of server-generated directory listings
Include /etc/apache2/mod_autoindex-defaults.conf

# associate MIME types with filename extensions
TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf

# set up (customizable) error responses
Include /etc/apache2/errors.conf

# global (server-wide) SSL configuration, that is not specific to
# any virtual host
Include /etc/apache2/ssl-global.conf

# forbid access to the entire filesystem by default
<Directory /srv/www/htdocs/test>
Options None
AllowOverride All
Order deny,allow
Deny from all
</Directory>


# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

# List of resources to look for when the client requests a directory
DirectoryIndex index.html index.html.var

### 'Main' server configuration #############################################
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
Include /etc/apache2/default-server.conf


# Another way to include your own files
#
# The file below is generated from /etc/sysconfig/apache2,
# include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and
# APACHE_CONF_INCLUDE_DIRS
Include /etc/apache2/sysconfig.d/include.conf


### Virtual server configuration ############################################
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
Include /etc/apache2/vhosts.d/*.conf


# Note: instead of adding your own configuration here, consider
# adding it in your own file (/etc/apache2/httpd.conf.local)
# putting its name into APACHE_CONF_INCLUDE_FILES in
# /etc/sysconfig/apache2 -- this will make system updates
# easier :)

marce
30.03.09, 11:20
natürlich ist eine entsprechende Einstellung notwendig - aber eben an der richtigen Stelle. Und die dürfte sich in der Definition des vHosts befinden. Vermutlich wurde die von Dir gemachte Einstellung irgendwann später in der Config wieder überschrieben - man beachte die Tausende Includes...

Übrigens braucht es kein "all" sondern nur ein "AuthConfig". Mehr dazu findet sich in der Apache-Doku, ebenso lesenswertes, wie entsprechende Einstellungen vererbt werden und sinnvoll anzuordnen sind...

jtmib
30.03.09, 12:03
Ich habe hier auch eine SuSE 11 am laufen und in der httpd.conf folgende Änderung durchgeführt:

# forbid access to the entire filesystem by default
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>

<Directory "/srv/www/htdocs/phpMyAdmin">
AllowOverride All
</Directory>

<Directory "/srv/www/htdocs/JT">
AllowOverride All
</Directory>

# use .htaccess files for overriding,

Danach einfach /etc/rc.d/apache2 restart

Danach sollte es tun.

Grüßle
JTMIB

marce
30.03.09, 12:11
aber eben auch nur, wenn hinterher in irgendeiner anderen Config-Datei nicht wieder anderes definiert wird.

(Ja, es hat auch seine Nachteile, die Apache-Konfig zu splitten :-)

crystal_ice
30.03.09, 13:20
natürlich ist eine entsprechende Einstellung notwendig - aber eben an der richtigen Stelle. Und die dürfte sich in der Definition des vHosts befinden. Vermutlich wurde die von Dir gemachte Einstellung irgendwann später in der Config wieder überschrieben - man beachte die Tausende Includes...

Übrigens braucht es kein "all" sondern nur ein "AuthConfig". Mehr dazu findet sich in der Apache-Doku, ebenso lesenswertes, wie entsprechende Einstellungen vererbt werden und sinnvoll anzuordnen sind...

Es läuft :)

Du hattest recht, anstatt in der http.conf muß der Eintrag in der default-server.conf stehen (zumindest bei meiner konfiguration). Ich danke dir, you make my day :).