apache findet .htpasswd nicht

  • Hallo,


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


    Code
    2017-12-29 22:38:51    Error    2001:a62:142b:1600:905f:ad54:89dc:d4b6        
    
    (2)No such file or directory: AH01620: Could not open password file: /etc/apache2/httpdocs/bla/.htpasswd                
    
    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

  • Die .htpasswd sollte sicherheitshalber nicht im DocRoot liegen!


    Zu deinem Problem:

    Du schreibst, deine .ht* liegen im httpdocs Verzeichnis. Laut Fehlermeldung wird aber im Verzeichnis httpdocs/bla nach der .htpasswd gesucht.


    Gruß und guten Rutsch Oli

  • Ja. Danke für den Tipp!

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


    In der .htaccess ist folgender Verweis hinterlegt:

    Apache Configuration
    AuthUserFile /httpdocs/bla/.htpasswd

    dieses wird von apache auf

    Code
    /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.

  • Er sucht nicht im falschen Verzeichnis. htaccess dateien (und die dazugehörige .httpasswd) werden nicht über das DocumentRoot sondern über das Dateisystem angesprochen. Du musst also den Dateisystem Pfad angeben.

  • mache ich das etwa nicht mit:

    Apache Configuration
    AuthUserFile /httpdocs/bla/.htpasswd

    ?


    wie muss ich den Pfad übergeben wenn es so nicht funktioniert?


    die .htaccess liegt in:

    Code
    /httpdocs/.htaccess
  • 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:


    Apache Configuration
    AuthUserFile httpdocs/bla/.htpasswd


    bekomme ich diese Meldung:


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


    Code
    / 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):

    Apache Configuration
    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
    /httpdocs/etc/apache2/

    die .htacces liegt in:


    Code
    /httpdocs/.htaccess

    Die Angabe einen absoluten Pfades funktioniert irgendwie nicht...


    also:


    Apache Configuration
    AuthUserFile /access/.httpasswd

    wird so gesucht:


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

    gibt es eine Möglichkeit apache anders zu konfigurieren?


    oder muss ich ihm sowas basteln:


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

    PHP
    <?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.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)