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

Re: Wie Authentifizierung in apache2 in wheezy einrichten



Hallo Jochen,

On 14.02.2015 20:47 Jochen Spieker wrote:
Hugo Wau:
On 14.02.2015 13:33 Jochen Spieker wrote:
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.
Wenn sich dieses php-Programm für den gedachten Einsatzzweck als geeignet darstellen sollte, ist es noch nicht raus, ob es zentral auf einem Internet-Server für eine bestimmte Gruppe zur Verfügung gestellt wird oder ob es dezentral auf jedem einzelnen Rechner dieser Leute laufen wird, wobei im Moment mehr für Letzteres spricht aber ersteres nicht ausgeschlossen werden kann. In php muss ich mich erst noch genauso einarbeiten, wie in die apache.Konfiguration. (Es ist insgesamt LAMP + Java).
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.
Ich bin der Anleitung, auf die das, von mir zu testende, Programm verwiesen hat, gefolgt. Diese war, wie ich mit Deiner Hilfe herausgefunden habe, für apache2.0 geschrieben gewesen. Dieser Anleitung folgend habe ich die .htaccess erstellt und wollte, dass diese berücksichtigt und ausgeführt wird.
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.
Dankeschön

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:

Aha.
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
Also ich werde mich doch tiefer in jede der einzelnen Komponenten von LAMP + Java hineinlesen müssen.
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.
Das hatte ich mir gedacht. Und selbst auf einem zentralen, über das Internet von der Benutzergruppe ansprechbaren Server würde das kaum der Fall sein.
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.
Das kann ich verstehen.
"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.
So weit war ich gewesen. Nur war mir verborgen, wie ich den apachen dazu bringe, die jeweilige .htaccess NICHT zu ignorieren.

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/
Also den apache dazu zu bringen, html-code, der in /var/www steht, auszugeben, war alles, was ich vorher damit gemacht hatte. Jetzt, dank Deiner Hilfe, merke ich, dass er doch viel mehr kann - und dass das von der jeweiligen Konfiguration abhängt. Ja. ich werde das lesen. Englischer Text macht mir keine Probleme. Eher Probleme macht es mir, in Konfigurationsdateien gleich die stark abgekürzten Zusammenhänge richtig zu interpretieren - ohne das Handbuch gelesen zu haben.

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 …

[...]
Danke, ja, Du hast meine lange Rede schön kurz zusammengefasst.
MfG
Hugo


Reply to: