Apache2 Server index Fehler

  • Hallo liebe Netcup Community,

    ich habe jetzt kein ähnliches Thema gefunden, aber ich habe ein Problem mit meinem Apache2.4 Webserver. Das Problem ist, wenn ich eine Webseite auf dem Webserver aufrufen möchte (liegt in dem Verzeichnis /var/www/html/baninterface ) zeigt er mir das gesamte Verzeichnis, mit allen .php Dateien und den Unterordnern an. Wenn ich aber eine .htaccess erstelle, in der steht das er standardmäßig auf die index.php oder auf dem Hauptverzeichnis (/var/www/html) eine index.html zugreifen soll, geht das. Ich habe aber auch eine Cloud auf meinem VServer installiert und nutze diese Für meine Arbeiten und für Projekte die ich mit Personen mache, durch diesen Fehler ist meine Cloud gecrashed. Wie dem auch sei, kann ich einen Befehl eingeben oder Dateien bearbeiten, dass der Apache2.4 automatisch erkennt ob eine index.php oder index.html in dem Verzeichnis, was man über den Browser aufruft prüft und direkt ansteuert.

    Danke im Voraus


    Viele Grüße Nils


    PS. Sorry für so viel Text:(

  • Also eine .htaccess gilt ja grundsätzlich nur für das Verzeichnis, in dem sie liegt.


    Erstell doch einfach unter /var/www/html/baninterface folgende .htaccess, bzw. füg folgendes innerhalb eines <Directory ...>-Blocks im Vhost ein:


    Code
    1. Options -Indexes

    In dem Fall kriegst du beim Aufruf eines Ordners innerhalb des Verzeichnisses entweder das index-File, oder - falls nicht vorhanden - 403 Forbidden

    ChestSort: Automatische Kistensortierung in Minecraft - www.chestsort.de


    binichblau: Online-Promillerechner - www.binichblau.de

  • Also eine .htaccess gilt ja grundsätzlich nur für das Verzeichnis, in dem sie liegt.


    Erstell doch einfach unter /var/www/html/baninterface folgende .htaccess, bzw. füg folgendes innerhalb eines <Directory ...>-Blocks im Vhost ein:


    Code
    1. Options -Indexes

    In dem Fall kriegst du beim Aufruf eines Ordners innerhalb des Verzeichnisses entweder das index-File, oder - falls nicht vorhanden - 403 Forbidden

    ich nutze die .htaccess mit dem Script hier :

    <Files ~ "^\.(htaccess|htpasswd)$">

    deny from all

    </Files>

    DirectoryIndex index.html

    order deny,allow

  • Und die liegt wo? Da fehlt ja die Option -Indexes

    ChestSort: Automatische Kistensortierung in Minecraft - www.chestsort.de


    binichblau: Online-Promillerechner - www.binichblau.de

  • hi, ich habe jetzt mal geschaut und habe das hie in dem Pfad /etc/apache2/mods-enabled eine Verknüpfung gefunden mit dem namen dir.conf und dir.load. Die Verknüpfungen führen zu dem Pfad /etc/apache2/mods-available und dort finde ich die original Dateien. In dem Modul dir.conf steht das hier:

    <IfModule mod_dir.c>

    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

    </IfModule>


    # vim: syntax=apache ts=4 sw=4 sts=4 sr noet


    Also wir halten fest das modul ist aktiviert, scheint richtig konfiguriert zu sein aber es geht auch nach disable und wieder enable und neustart nicht. Hier ein Bild. Ich habe die Webseite über die *.supersrv.de seite aufgerufen. Haben aber auch eine eigene Domain damit verbunden, die Domain läuft aber auch auf dem Port 443


    serverindex.PNG

  • Erstell im baninterface-Ordner einfach folgende .htaccess:

    Code
    1. Options -Indexes

    oder alternativ eine leere index.html

    ChestSort: Automatische Kistensortierung in Minecraft - www.chestsort.de


    binichblau: Online-Promillerechner - www.binichblau.de

  • Dein Fehler sind für mich danach aus das PHP-Module nicht vorhanden oder aktiviert ist, dann wird natürlich auch die index.php Datei nicht geladen.


    Ich würde für deine Vorhaben wie @mfnalex es geschrieben hat mit vhost Datei Arbeiten.

    Dort kannst du Festlegen, auf welches Verzeichnis der Apache2 Server zugreifen soll und mit diese Methode wirst du auch deine Cloud wieder zum Laufen bekommen.

  • Dein Fehler sind für mich danach aus das PHP-Module nicht vorhanden oder aktiviert ist, dann wird natürlich auch die index.php Datei nicht geladen.


    Ich würde für deine Vorhaben wie @mfnalex es geschrieben hat mit vhost Datei Arbeiten.

    Dort kannst du Festlegen, auf welches Verzeichnis der Apache2 Server zugreifen soll und mit diese Methode wirst du auch deine Cloud wieder zum Laufen bekommen.

    Wie meinst du das mit php modul ? Denn wenn ich meinedomain.de/phpmyadmin aufrufe geht alles. Liegt nicht im html verzeichnis. Und wie ist das mit der vhost methode gemeint... Ehrlich gesagt ich bin ein bisschen doof was Apache angeht.(ich weiß nicht welche datei ich da bearbeiten soll/muss etc.) deswegen benötige ich ein bisschen Hilfe und erklärung:(

    tut mir leid

  • Und wie sehen die zugehörigen vHosts in der httpd.conf aus? DirectoryIndex hat nur indirekt damit zu tun. Damit wird nur festgelegt, welche Datei ausgeliefert wird, wenn auf ein Verzeichnis zugegriffen wird. Ist keine dieser Dateien enthalten, dann wird eben entweder ein Listing zurückgegeben oder ein Fehler, je nachdem ob Options +Indexes oder Option -Indexes eingestellt ist. Das steht bei dir offenbar auf Options +Indexes, sonst würde das Listing nicht angezeigt. Zudem gibt es ja keine index.html in dem gelisteten Verzeichnis, weshalb dann eben das Listing ausgegeben wird. Vermutlich solltest du beim DirectorIndex eher index.php setzen statt index.html - oder beides. Bist du sicher, dass du einen Apache-Server richtig und sicher konfigurieren kannst? Ich kann es vermutlich nicht, aber das oben geschriebene ist mir jedenfalls klar.


    Und nein, eine .htaccess gilt auch für alle Unterverzeichnisse. Unter anderem deswegen ist der Apache ja so viel langsamer als nginx. Er muss bei jedem Pfad prüfen, ob im Verzeichnis oder irgendwo darüber im Pfad eine .htaccess steht und diese dann auch bearbeiten. Bei jedem einzelnen Request.

  • Wenn du Apache laufen hast, solltest du schon wissen wie das Ding aufgebaut ist - normalerweise hast du, z.B. unter Debian/Ubuntu, unter /etc/apache2/sites-available (bzw. /etc/apache2/sites-enabled) verschiedene Configs für deine vHosts. Darin kannst du jeweils Einstellungen vornehmen, z.B. den DocRoot, DirectoryIndex, Optionen wie +Indexes bzw. -Indexes etc.


    Alles, was du mittels .htaccess regeln kannst, kannst du mindestens genau so gut über die vHost-Definition lösen - innerhalb eines <Directory ...>-Blocks.


    Hast du deinen Server denn vernünftig abgesichert (SSH, Firewall, etc.)? Ansonsten wäre wahrscheinlich ein Managed Server die bessere Lösung, auch wenn der (auf den ersten Blick) teurer erscheint :)


    EDIT: Laut deinem Screenshot oben hast du entweder kein SSL-Zertifikat installiert, oder es fehlt lediglich eine 301-Weiterleitung nach https. Jedenfalls sollten Daten, die irgendwas mit Authentifizierung zu tun haben (was ja der Fall ist, da es ja anscheinend um irgendein Admin-Interface geht), ausschließlich verschlüsselt übertragen werden - sonst kann sie im Zweifel jeder/irgendwer mitlesen.

    Stichwort: letsencrypt

    ChestSort: Automatische Kistensortierung in Minecraft - www.chestsort.de


    binichblau: Online-Promillerechner - www.binichblau.de

  • Ich habe oben erwähnt das ich nicht über unsere Domain im browser war. Wir haben ein SSL Zertifikat bei Cloudflare und eine automatisierte http zu https einstellung bei Cloudflare eingestellt.

  • Und wie sehen die zugehörigen vHosts in der httpd.conf aus? DirectoryIndex hat nur indirekt damit zu tun. Damit wird nur festgelegt, welche Datei ausgeliefert wird, wenn auf ein Verzeichnis zugegriffen wird. Ist keine dieser Dateien enthalten, dann wird eben entweder ein Listing zurückgegeben oder ein Fehler, je nachdem ob Options +Indexes oder Option -Indexes eingestellt ist. Das steht bei dir offenbar auf Options +Indexes, sonst würde das Listing nicht angezeigt. Zudem gibt es ja keine index.html in dem gelisteten Verzeichnis, weshalb dann eben das Listing ausgegeben wird. Vermutlich solltest du beim DirectorIndex eher index.php setzen statt index.html - oder beides. Bist du sicher, dass du einen Apache-Server richtig und sicher konfigurieren kannst? Ich kann es vermutlich nicht, aber das oben geschriebene ist mir jedenfalls klar.


    Und nein, eine .htaccess gilt auch für alle Unterverzeichnisse. Unter anderem deswegen ist der Apache ja so viel langsamer als nginx. Er muss bei jedem Pfad prüfen, ob im Verzeichnis oder irgendwo darüber im Pfad eine .htaccess steht und diese dann auch bearbeiten. Bei jedem einzelnen Request.

    Ich schicke es nochmal rein

  • root@v****************:~# ls -l /etc/apache2/sites-enabled

    total 28

    -rw-r--r-- 1 root root 1531 May 7 12:19 002-default.conf

    -rw-r--r-- 1 root root 1536 Feb 22 12:24 default-le-ssl.conf

    _old

    -rw-r--r-- 1 root root 6437 Sep 29 2019 default-ssl.conf_ol

    d

    -rw-r--r-- 1 root root 1464 Oct 10 2019 dis-default.conf

    -rw-r--r-- 1 root root 1519 Apr 2 20:39 gitlab.domain.

    de.conf

    -rw-r--r-- 1 root root 1738 May 7 12:21 gitlab.domain.

    de.ssl.conf

    lrwxrwxrwx 1 root root 33 Mar 23 15:56 nextcloud.conf -> .

    ./sites-available/nextcloud.conf