[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wie Authentifizierung in apache2 in wheezy einrichten



Hugo Wau:
> On 14.02.2015 13:33 Jochen Spieker wrote:
>> Hugo Wau:
>>
>>> auf meinem localhost betreibe ich einen apache2.
>>> Ein Programm, das ich einsetzen möchte sagt: "Authentication is required".
>>>
>> Wie hast Du dieses Programm denn installiert? Wie sieht die
>> Apache-Konfiguration dafür aus? Wo steht der Satz überhaupt? Wenn der
>> Apache nicht übers Netz erreichbar ist, kannst Du Dir die
>> Authentifizierung ja vielleicht auch ganz sparen.
>>
> Das Programm ist ein (fremdes) php-skript, welches so, wie es jetzt ist,
> über den eigenen Apache2 (als Webseite) angesprochen wird. Nicht ich,
> sondern dieses php-Programm setzt Authentifizierung voraus.

Wodurch äußert sich diese Voraussetzung? Wenn der Autor des Programms
einfach meint, das sei eine gute Idee, dann muss das immer noch nicht
für Deinen Einsatzzweck gelten.

> Also inzwischen habe ich in der (von mir bis dahin nicht veränderten)
> "apache2.conf" folgendes vorgefunden:
> -----------------------
> # The following lines prevent .htaccess and .htpasswd files from being
> # viewed by Web clients.
> #
> <Files ~ "^\.ht">
>     Order allow,deny
>     Deny from all
>     Satisfy all
> </Files>
> -----------------------
> Ich habe diese Zeilen auskommentiert, den apache2 neu gestartet -> aber
> immer noch nicht das gewünschte Resultat

Was ist denn das gewünschte Resultat? ich sehe keinen Zusammenhang
zwischen Deinem bisherigen Wunsch (Authentifizierung für irgendeine URL)
und dem Konfigurationsschnipsel oben. Der Kommentar drüber bedeutet auf
deutsch soviel wie: "Die folgenden Zeilen verhindern die Auslieferung
von .htaccess und .htpasswd über den Webserver".

Das hilft Dir nicht dabei, den Zugriff auf Dein Programm per htaccess zu
schützen.

>>> Meine .htaccess sieht so aus:
>>> ----------------------------
>>> AllowOverride AuthConfig
>> Diese Zeile muss in die Serverkonfiguration. Sie ist ja gerade dafür da,
>> den Einsatz von .htaccess überhaupt erst zu erlauben.
>
> Wohin wäre das genau?

Im Zweifel in den VirtualHost, den Du benutzt. Wenn Du keine Ahnung
hast, welcher das ist, ist es wahrscheinlich dieser hier:

/etc/apache2/sites-available/000-default.conf

Genaueres siehe unten.

> Also wenn ich diese Zeile direkt z.B. in die apache2.conf eintrage und den
> apache2 neu starte,
> dann sagt er mir folgendes:
> --------------------------------
> Syntax error on line 187 of /etc/apache2/apache2.conf:
> AllowOverride not allowed here
> Action 'configtest' failed.

Die Apache-Dokumentation gehört zu den Besseren. Dort steht auch für
jede Direktive, in welchem Kontext sie verwendet werden darf:

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride
AllowOverride
„,
Context:    directory

Und weiter:

*Only available in <Directory> sections*
AllowOverride is valid only in <Directory> sections specified without
regular expressions, not in <Location>, <DirectoryMatch> or <Files>
sections. 

Ich verwende übrigens die englische Doku, weil ich sie verstehe und sie
im Zweifel korrekt ist. Auf deutsch gibt es das aber auch:

http://httpd.apache.org/docs/2.2/de/mod/core.html#allowoverride

>>> Wie und in welcher Datei wird die Authenfizierung in apache2 in Debian
>>> wheezy korrekt eingerichtet?
>>>
>> Das kannst Du machen, wo Du willst. Grundsätzlich ist die Idee, einzelne
>> (oder Gruppen von) VirtualHosts in Dateien in
>> /etc/apache2/sites-available/ abzulegen. modulspezifische (globale)
>> Konfiguration kommt nach /etc/apache2/mods-available/ und sonstige
>> Schnipsel nach /etc/apache2/conf-available/.
>
> Ja, ich hatte irgendwo davon gelesen, dass die .htaccess den apache deutlich
> verlangsamt gegenüber Eintragungen in der Konfiguration direkt.

Das kannst Du vernachlässigen, so lange Du nicht Dutzende oder mehr
Requests pro Sekunde bekommst.

> Aber im
> Moment bin ich nur am Testen von Möglichkeiten und der apache2 ist Teil der
> Testumgebung. Im Moment ist es ein Nebeneffekt, zum Test verschiedener php
> Programme, Virtualhosts auf dem apache2 zu haben.

Die Standardkonfiguration, die Debian ausliefert, hat ja auch immer
mindestens einen VirtualHost definiert. Darauf würde ich auch nicht ohne
Not verzichten.

> "EIgentlich" hatte ich gelesen, dass das, was in der .htaccess steht auch in
> die Konfiuration geschrieben werden kann.

Ja, aber eine htaccess-Datei hat automatisch einen bestimmten Kontext --
nämlich das Verzeichnis, in dem sie liegt.

Mein Eindruck ist, dass Dir die Grundkonzepte von Apache noch nicht ganz
klar sind. Lies vielleicht das hier ein bißchen quer:

http://httpd.apache.org/docs/2.2/configuring.html
http://httpd.apache.org/docs/2.2/sections.html
http://httpd.apache.org/docs/2.2/urlmapping.html
http://httpd.apache.org/docs/2.2/vhosts/


Für weitere Fragen wäre es extrem hilfreich, wenn Du konkreter wirst.
"Ein Programm bringt Meldung xy" gibt uns extrem wenig Informationen.
Mach es eher so:

| Ich habe einen Apache 2.2 unter wheezy mit Standardkonfiguration. Ich
| möchte ein PHP-Skript durch HTTP Basic Authentication schützen und die
| Konfiguration in einer htaccess-Datei hinterlegen.
| 
| Das Skript kann ich bereits unter http://localhost/foo/bar.php
| erfolgreich aufrufen.  Das Skript liegt im Verzeichnis
| /var/www/localhost/foo/, wo ich auch die htaccess-Datei mit folgendem
| Inhalt hinterlegt habe:
| 
| …
| 
| Wenn ich die obige URL im Browser aufrufe, erhalte ich im Browser
| folgende Meldung … und in den Apache-Logs steht das hier …

J.
-- 
I no longer believe in father christmas but have no trouble
comprehending a nuclear apocalypse.
[Agree]   [Disagree]
                 <http://www.slowlydownward.com/NODATA/data_enter2.html>

Attachment: signature.asc
Description: Digital signature


Reply to: