htaccess von joomla-security.de und IONOS - shared server

  • Hallo zusammen,


    ich habe mal eine Verständnisfrage, bei der ich evtl. auf dem Holzweg bin.


    Nützliche informationen:


    Was ich gemacht habe:

    • Ich habe die .htaccess (standard als auch extended) von joomla-security hergenommen und verwendet
    • die nötigen Anpassungen habe ich vorgenommen (non-www zu www rausgenommen, domain angepasst)

    Problem:

    Die Webseite liefert einen Server Fehler 500.



    Was ich bereits geprüft und probiert habe:

    • configuration.php geprüft bezüglich der pfad angaben
    • htaccess geprüft auf domain-vertipper
    • htaccess empfohlene Änderungen bei Server Errror 500 vorgenommen
    • für error-logs die php.ini im Verzeichnis /homepages/22/xxxxxxx/htdocs/joomla2020 angelegt, wie bei ionos beschrieben:
    Code
    error_reporting = E_ALL | E_STRICT;
    log_errors = On;
    display_errors = Off;
    error_log = /homepages/27/d382162338/htdocs/php-errors.log;
    • Quelle: https://www.ionos.de/hilfe/hos…hp/error-logs-aktivieren/
    • Pfad natürlich angepasst auf meinen persönlichenpfad: /homepages/22/xxxxxxxxx/htdocs/php-errors.log (Schreibrechte vorhanden, sogar 777 probiert)
    • ohne Ergebnis
    • Kontakt zu IONOS-Support wo ich die Server error logs einsehen kann (ich kenne das von hosteurope, dass es im KundenLogin möglich ist)
    • IONOS-Support gab mir nur erneut den Hinweis (dies hatte ich bereits gelesen) dass ich die php.ini anlegen soll dafür
    • Ich verwies darauf, dass ich doch irgendwo, wie auch die access.log files die error-log files (ggf. über ssh-login) einsehen können müsste
    • erneute Antwort vom IONOS-Support, ich soll die php.ini einrichten

    Mein Verständnis-Problem:

    1. Wenn die htaccess einen Servererror 500 verursacht, greift doch die php.ini im Verzeichnis nicht und kann ins Log schreiben, korrekt?
    2. Ich habe auf meinem hosteruope account das gleiche spiel probiert und in die htaccess am Anfang "xyz-Unfug" geschrieben, dann kam natürlich ein 500er und in der server error-log auch ein Hinweis auf "xyz-Unfug" in Zeile 1
    3. Wie kann ich durch die php.ini server error logs ausgeben lassen, wenn ein 500er Fehler auftritt

    Zu meinem Hintergrund, ich bin technisch sehr versiert und lese und lerne viel, aber hier braucht es vermutlich wirklich einen entscheidenen Hinweis, denn ich bisher nirgends finden konnte.


    Also, was kann ich noch tun, damit ich diese Ergebnisse erhalten?


    viele Grüße,

    Ayko


    PS: Sonst wäre mein nächster Weg, die htaccess Stück für Stück auszuprobieren bis ich die Problemstelle gefunden habe (erscheint mir etwas umständlich, ist aber eine mögliche Lösung)

  • Versuche erst mal die Standard-htaccess zum Laufen zu bekommen (meisten reicht die so wie so aus).

    Bei IONOS wichtig den Kommentar bei # RewriteBase / rauszunehmen und den Pfad zur Installation richtig zu setzten, falls Joomla nicht im Root liegt, sondern in einem Verzeichnis.

  • Diese erweiterte .htaccess von der du redest, ist deshalb nicht ganz ohne Probleme, weil sie bestimmte Joomla-Funktionen blockieren könnte. Insbesondere nach Aktualisierungen macht sich das dann schlagartig bemerkbar und man sucht sich 'nen Wolf. Muss dann alles nachgebessert werden. Ich empfehle einen zusätzlichen Passwortschutz für das administrator-Verzeichnis (sprich Backend) über eine .htaccess im administrator-Verzeichnis und eine dazuhehörige .htpasswd, die auch woanders liegen darf.

    Nimm für den Anfang erst einmal die normale .htaccess (Vorlage ist die htaccess.txt, die Joomla beiliegt).


    Bei Ionos musst du auf folgendes achten:

    1.) RewriteBase / wurde bereits erwähnt

    2.) # Options +FollowSymlinks

    Hier ist die # wichtig, da sonst 500er-Fehler. Keine Ahnung, ob sich das mittlerweile geändert hat.


    Bzgl. php.ini:

    Falls du ein memory_limit von -1 hast (also theoretisch unendlich groß), dann setze dieses auf 256M oder 512M oder wie auch immer!

    Mit solchen Werten kommt sonst beispielsweise AkeebaBackup nicht zurecht.

    Ähnliches auch bei max_execution_time von 50000. Sollte man auch runtersetzen!

    Es reicht dafür, wenn du die php.ini ins administrator-Verzeichnis legst.

    Könnte auch sein, dass bei dir eine user.ini möglich ist, die ins Joomla-Root kommt und sich auf alle Unterverzeichnisse auswirkt.

  • Was mich immer noch interessiert:
    Frage: Was greift zu erst, die php.ini oder die .htaccess wegen der error-log Geschichte ??


    Dankeschön für die Vielen Tipps und Anhaltspunkte.

    Ich gehe die Sachen erneut durch und prüfe es noch mal.


    Als erstes Feedback:
    - Standard htaccess von joomla hat funktioniert

    - php 7.0.33 ist kein Tippfehler, dass ist Stand der Dinge, da es ein Non-Joomla Unterverzeichnis gibt, mit scripten die nicht mit 7.2/7.4 laufen (sind nicht von mir, aber für die Webseite der Stiftung zwingend notwendig. Ist derzeit eine Gegebenheit, die noch nicht änderbar ist)

    - Rewrite Base / war schon auskommentiert, wie ich schrieb, hab ich die notwendigen Anpassungen vorgenommen. ;-)

    JoomlaWunder ok, diese php.ini einstellungen probiere ich mal aus und schaue ob user.ini möglich ist

    --> sofern die htaccess nicht das Greifen der php.ini blockiert (siehe Frage zu Beginn).


    viele Grüße
    Ayko

  • Was mich immer noch interessiert:
    Frage: Was greift zu erst, die php.ini oder die .htaccess wegen der error-log Geschichte ??

    Das kann ich dir gar nicht genau sagen.

    Wenn aber eine php.ini bzw. user.ini vom Hoster vorgesehen ist, dann nutzt man diese um beispielsweise Werte wie memory_limit und Co. zu ändern.

    In der .htaccess stehen dann Dinge wie Weiterleitungs-Regeln von Joomla, oder Weiterleitungen von ohne-www nach www oder von http nach https und solche Dinge. Auch die PHP-Version lässt sich da meist lokal ändern.

    Alles hosterabhängig.


    Wenn du die php.ini bzw. user.ini nutzt, musst du wahrscheinlich immer den ganzen vorgesehenen Satz (also mehrere Werte) verwenden, auch wenn du nur 1 Wert ändern möchtest. Ausgedachtes Beispiel:

    upload_max_filesize = 32M

    allow_url_fopen = On

    display_errors = Off

    magic_quotes_gpc = Off

    max_execution_time = 120

    memory_limit = 256M


    Ansonsten kann es sein, dass die Werte auf sehr kleine Werte zurückfallen. Beispielsweise:

    upload_max_filesize = 8M wird über php.ini hochgesetzt auf 32M. Lässt man aber die Zeile weg, dann kann der Wert z.B. auf 2M "zurückfallen". Genauer kann ich dir das aber nicht erklären.