apache findet .htpasswd nicht

  • Hallo,


    beim Versuch einen Teil meiner Homepage mit einer Zugriffskontrolle zu erweitern stiess ich auf folgenden Fehler:


    Code
    1. 2017-12-29 22:38:51 Error 2001:a62:142b:1600:905f:ad54:89dc:d4b6
    2. (2)No such file or directory: AH01620: Could not open password file: /etc/apache2/httpdocs/bla/.htpasswd
    3. Apache-Fehler

    Die .htaccess und .htpasswd liegen im /httpdocs Verzeichnis, allerdings scheint die Apache root auf /etc/apache2 zu liegen, auf welche ich keinen Zugriff habe.


    Weiss einer wie ich apache so einstellen kann das er im richtigen Verzeichnis sucht?


    Viele Grüße


    Kenjutzu

  • Ja. Danke für den Tipp!

    Das ist oben falsch beschrieben, die .htpasswd liegt im Unterordner bla.


    In der .htaccess ist folgender Verweis hinterlegt:

    Code
    1. AuthUserFile /httpdocs/bla/.htpasswd

    dieses wird von apache auf

    Code
    1. /etc/apache2/httpdocs/bla/.htpasswd

    übersetzt (siehe Fehlermeldung).


    Ich müsste jetzt wissen, wie ich das apache root ändern kann, so dass ich auf mein /httpdocs verweisen kann und zur .htpasswd gelange.

    Die findet er ja derzeit nicht weil er mit den derzeitigen Einstellungen im falschen Verzeichnis zu suchen scheint.

  • Das steht doch in der Fehlermedung. Er sucht die .htpasswd unter /etc/apache.....

    Das / steht in diesem Fall NICHT für das DocumentRoot (also im Browser) sondern für das Root vom Dateisystem. Du musst den Pfad im Dateisystem angeben.

  • ok, wenn ich das ganze so angeben:


    Code
    1. AuthUserFile httpdocs/bla/.htpasswd


    bekomme ich diese Meldung:


    Code
    1. 2017-12-30 01:24:52Error85.179.96.10(2)No such file or directory:
    2. AH01620: Could not open password file: /etc/apache2/httpdocs/bla/.htpasswd
    3. Apache-Fehler
  • Ich hab jetzt rausgefunden das er in folgendem Pfad sucht:


    Code
    1. / httpdocs / etc / apache2 / httpdocs / bla / .htpasswd


    habe dann diese Ordnerstruktur angelegt und dann findet er auch die Datei...


    irgendwie kommt mir das merkwürdig vor, aber wenns so läuft is ja ok.


    Danke für die Hilfe!

  • Auf welche Verzeichnisse hast du denn Zugriff, wenn du sagst auf /etc/apache2 hast du keinen Zugriff?

    Verschiebe die .htpasswd doch mal in ein Verzeichnis außerhalb deines DocumentRoots, z. B. /home/<deinusername>/.htpasswd (hast du Zugriff darauf?) und trage dann folgendes in die .htaccess ein (die wiederum im DocumentRoot/zu schützenden Verzeichnis liegt):

    Code
    1. AuthUserFile /home/<deinusername>/.htpasswd

    Wenn du die .htpasswd im DocumentRoot liegen hast, kann es passieren, dass diese für Jedermann auslesbar ist. Damit wäre dein Passwort-Schutz dahin!

  • ich habe jetzt einen neuen Ordner in meinem home erstellt, welches neben dem httpdocs liegt, also nicht mehr so einfach aaslesbar ist.


    Mein Problem mit apache ist, das dieses als Ausgangsordner für seine Suche hier startet:


    Code
    1. /httpdocs/etc/apache2/

    die .htacces liegt in:


    Code
    1. /httpdocs/.htaccess

    Die Angabe einen absoluten Pfades funktioniert irgendwie nicht...


    also:


    Code
    1. AuthUserFile /access/.httpasswd

    wird so gesucht:


    Code
    1. /httpdocs/etc/apache2/access/.httpasswd

    gibt es eine Möglichkeit apache anders zu konfigurieren?


    oder muss ich ihm sowas basteln:


    Code
    1. AuthUserFile ../../../../access/.httpasswd
  • Erstell einmal eine beliebige PHP-Datei mit folgendem Inhalt und rufe sie über den Browser auf:

    PHP
    1. <?php phpinfo();


    Ganz unten sollte der absolute Pfad, aus Sicht des Webservers stehen. Dieser sieht ungefähr so aus:


    /var/www/vhosts/hostingXXXX.afYYY.netcup.net/httpdocs/...


    Mit dem sollte es auch in der .htaccess problemlos klappen.