Bei Backendaufgaben: Fehler 500: Internal Server Error und Hoster STRATO --> gelöst

  • Nach Stunden der Recherche und Test und Änderungen in configuration.php und Erstellen von php.ini hier und dort habe ich die Lösung für meinen Fehler 500 gefunden.


    Die Umgebung:
    STRATO PowerWeb Basic mit 10 GB Webspace
    Joomla 3.7.2
    php 5.6
    Component JEvents 3.4.39 zur Verwaltung von Seminarterminen


    Kurzfassung: Server-Speicherplatz (Webspace) erschöpft


    Langfassung:


    JEvents erlaubt in der Konfiguration die Einstellung "Joomla Cache für Event Daten benutzen" . So wurden denn im Laufe der Zeit über 350.000 Dateien mit > 9 Gb Speicher in das Joomla Cache Verzeichnis geschrieben. Die Suche nach dem Speicherfresser war gar nicht so einfach, weil Stratos WebFTP nur mit IE 10 (und älter) funktioniert. Den hatte ich auf dem Mac nicht. So hatte ich mit Filezilla den kompletten Webspace herunterladen wollen, um dem Speicherfresser auf die Schliche zu kommen - denn ich wußte, ein Backup belegte grade einmal 40 MB. Ich hatte schon eine falsche Berechnung bei STRATO in Verdacht, aber die Ursache, warum mit Filezilla nicht weiterhelfen wollte, ist schlicht ein Timeout in der Konfiguration von Filezilla (Einstellungen / Verbindung / Zeitüberschreitung auf 0 setzen zum deaktivieren - dann klappts auch mit der Anzeige und einem Download von > 350.000 Dateien - nur Geduld muss man noch mitbringen).
    Nachdem nun die Belegung des Speicherplatzes durch die entsprechenden JEvents Dateien identifiziert war, habe ich 500-er päckchenweise die Dateien gelöscht. Das dauert eine Ewigkeit mit Filezilla, Ich konnte zusehen, wie jede Datei einzeln angefasst und gelöscht wurde. Hatte fast schon etwas meditatives und ich hatte der Kundin schon angedroht, dass Sie ein größeres Webpaket bei Strato bestellen müsse.


    Das Löschen des Cache im Joomla Backend ging ja nicht, weil: error 500 ...
    Auch ein in der Zwischenzeit installiertes Plugin Regular Labs Cache Cleaner machte zwar was - aber keine 9 GB freigeben.
    Den Cache im Joomla Backend ausschalten ging ja auch nicht, weil: error 500 ...


    Nachdem ich also rund 4 GB freigeschaufelt hatte, dachte ich "alles gut". Aber nein, ein weiterer Tag Recherche musste draufgehen, um den Fehler 500 internal Server error endgültig zu beseitigen. Eine Warnung im Backend wies mich darauf hin, dass ich kein temp-Verzeichnis für temporäre Dateien in php gesetzt hätte. Ob das die Ursache für Fehler 500 war? Denn schließlich steht in der Erläuterung etwas von Mismatch Server Configuration.
    php.ini erstellt und hochgeladen (hatte ich die zuvor beim Aufräumen versehentlich gelöscht?)
    configuration.php Variable public $tmp_path = angepasst. Nachdem zuvor Pfadangaben mit /mnt/weba/51/...htdocs/.... dortstanden, habe ich gemäß Anleitung von Strato (https://www.strato.de/faq/arti…Joomla!-Installation.html) die Pfade logs und temp angepasst. Das Ergebnis war dann sowas wie /home/strato/www/XX/www.DOMAINMAME.TLD/htdocs/FOLDERNAME. Die Warnung verschwand aber dennoch nicht, also habe ich unter https://dl.fc-hosting.de/category/9-tools.html ein Script heruntrladen, was mir wieder andere Pfadangaben lieferte - die aber auch keine Änderung brachten.
    php-Version bei Strato umgestellt auf V 7.0 (JEvents unterstützt wohl derzeit (Juni 2017) noch nicht 7.1)


    Also bin ich wieder an das Verzeichnis /cache/com_jevents ran. Ich hatte mittlerweile herausgefunden, dass ich die unverschlüsselte FTP-Verbindung auch als gesicherte Verbindung nutzen kann, in dem ich in Filezilla statt ftp.strato.de den Server ssh.strato.de eingetragen hatte. Selbstverständlich sind hier dann die Felder Benutzername wieder anders zu füllen als unter einer FTP-Verbindung - wie könnte es auch anders sein. Die Anleitung mit den korrekten Informationen findet sich bei Strato unter https://www.strato.de/faq/arti…eit-mit-SSH-und-SFTP.html.
    Aber mein Wunsch, wie bei DOS früher üblich, ein Kommando abzusetzen, ist mit Filezilla nicht möglich - ich wusste aber, dass SSH sowas hergibt.


    Da ich einen Mac ein eigen nenne, ist das Programm Terminal installiert. Ich kürze hier jetzt mal ab, weil du möglicherweise eine Lösung suchst, viele Dateien auf einmal zu löschen:
    Anmelden am Strato Webserver mit

    Code
    ssh www.DOMAINNAME.TLD@ssh.strato.de

    und dem "Masterpasswort", das bei Strato NICHT dem FTP Kennwort entspricht. Die Kennworteingabe wird in Terminal nicht angezeigt, aber quittiert, wenn das Kennwort richtig war :)


    Ein weiterer Hoster lieferte mir dann unter https://www.siteground.com/tutorials/ssh/ssh_deleting.htm den entscheidenden Hinweis, wie ich meine >350.000 Dateien auf einmal löschen konnte:

    Code
    rm -rf *


    Danach hatte ich wieder die 9 GB frei und ich war vom Fehler 500 internal server error befreit ...


    Ach ja: nicht vergessen, bei JEvents den Cache auszuschalten. Sonst hast du bald wieder den gleichen Murks).


    Merke: nicht immer weist die Fehlermeldung auch auf die Ursache hin.


    Bei Fragen zu dieser Konstallation (J3.7.2, JEvents und Hoster Strato) stehe ich gerne zur Verfügung.