Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Procédure

Eine weiße Seite oder Fehler 500, was ist das?

Fehler 500 ist ein Seitenstatuscode, der für Internal Server Error steht, wörtlich übersetzt "interner Serverfehler". Das bedeutet, dass ein Fehler auf der Ebene des Webservers aufgetreten ist. Dies kann vom Apache2-Webserver ausgehen, vom PHP-Interpreter, der den Fehler an den Webserver weitergeleitet hat, oder von der MySQL-Datenbank, die den Fehler auf PHP-Ebene weitergeleitet hat und ihn wiederum an den Webserver weitergeleitet hat. Das sieht in etwa so aus:

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Was einige andere Browser betrifft, so sehen Sie möglicherweise nur eine weiße Seite ohne Inhalt :

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Bei Prestashop-Websites sehen Sie eine von Prestashop erzeugte Fehlerseite :

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Um das Problem zu diagnostizieren, ist es praktischer, die Fehler Ihrer Website direkt auf der Website anzuzeigen (auch wenn diese in der Datei error.log im Ordner log sichtbar sind, auf den Sie über Ihr FTP-Konto zugreifen können.

PHP-Fehler anzeigen

Um PHP-Fehler anzuzeigen, müssen Sie die php.ini-Datei der betreffenden Website bearbeiten. Klicken Sie in ISPConfig auf Sites und wählen Sie die betreffende Website aus:

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Klicken Sie dann auf die Registerkarte " Optionen " und fügen Sie im Feld "Custom php.ini settings" die folgende Zeile hinzu:

display_errors = On

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Es ist auch ratsam, die folgende Zeile hinzuzufügen, um sicherzustellen, dass Fehler richtig gemeldet werden, damit sie auf dem Bildschirm angezeigt werden (für den Fall, dass das Skript dies standardmäßig deaktiviert):

error_reporting = E_ALL

Aktivieren Sie den Debugging-Modus auf Ihrer Website.

Einige CMS und Frameworks wie WordPress, Prestashop, Symfony, Laravel, ... können die Tatsache, dass display_errors auf PHP-Ebene auf On steht, ignorieren, da sie ihre eigenen Fehlerbehandlungssysteme haben.

Den Debugging-Modus in WordPress aktivieren.

Um den Debugging-Modus einer auf WordPress basierenden Seite zu aktivieren, müssen Sie die Datei wp-config.php ändern, indem Sie den Wert von WP_DEBUG auf true und WP_DEBUG_DISPLAY ebenfalls auf true setzen.

Wenn WP_DEBUG_DISPLAY nicht in wp-config.php enthalten ist, müssen Sie es nach WP_DEBUG hinzufügen:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', true);

Aktivieren des Debugging-Modus in Prestashop

Um den Debugging-Modus auf Prestashop zu aktivieren, müssen Sie die Datei config/defines.inc.php bearbeiten. In dieser Datei müssen Sie _PS_MODE_DEV_ auf true setzen.

define('_PS_MODE_DEV_', true);

Den Debugging-Modus in Joomla aktivieren

Um den Debugging-Modus in Joomla zu aktivieren, müssen Sie die Datei configuration.php bearbeiten. In dieser Datei müssen Sie $debug auf 1 und $error_reporting auf Maximum setzen.

public $debug = '1';
public $error_reporting = 'maximum';

Aktivieren Sie den Debugging-Modus auf Laravel.

Um den Debugging-Modus in Laravel zu aktivieren, müssen Sie die .env-Datei von Laravel ändern, indem Sie APP_DEBUG auf true setzen:

APP_DEBUG=true.

Anschließend müssen Sie den Cache der Konfigurationsdateien löschen. Führen Sie auf Ihrer Konsole den folgenden Befehl aus:

php artisan config:clear

PHP-Fehler verstehen

Der zweitwichtigste Schritt ist es, die Fehler zu verstehen und eine Lösung anzubieten.

Parse error - Syntaxfehler

Die Fehler "parse error" und "syntax error" entstehen, wenn der PHP-Code nicht richtig geschrieben ist: fehlendes Semikolon am Ende, Klammern, die sich nicht schließen, Anführungszeichen, ... In diesem Fall wird es notwendig sein, das Skript Ihrer Website zu überprüfen.

Manche Syntax kann auch nur bei bestimmten PHP-Versionen Probleme bereiten, da sich die Syntax von PHP zwischen verschiedenen Versionen ändert. Beispielsweise funktioniert die Verwendung von eckigen Klammern zur Deklaration eines Arrays in PHP 7.2, während dies in PHP 7.4 nicht der Fall ist.

Es lohnt sich also,die PHP-Version zu überprüfen und an die Besonderheiten Ihrer Websiteanzupassen.

Fatal error: call to undefined function (Fataler Fehler: Aufruf einer undefinierten Funktion)

Wenn dieser Fehler auftritt, existiert die Funktion, die PHP aufrufen will, nicht. Dieses Problem tritt auf, wenn Dateien auf Ihrer Website fehlen oder unvollständig sind.

Fatal error: Uncaught Error: Call to undefined function mysql_connect()

Diese Fehlermeldung zeigt an, dass die Funktion mysql_connect() nicht existiert. Tatsächlich gibt es diese Funktion in PHP 7.0 und höher nicht mehr. Sie müssen PHP 5.x verwenden, damit Ihre Website funktionieren kann.

Fatal error: cannot redeclare

Wenn dieser Fehler auftritt, wurde derselbe Funktionsname mehrfach deklariert. Dieses Problem tritt insbesondere dann auf, wenn Plugins, Themen, Module, ... denselben Funktionsnamen verwenden.

Fatal error: allowed memory size exhausted.

Dies bedeutet, dass die maximal zulässige RAM-Speichergröße überschritten wurde. Dieses Problem tritt auf, wenn Sie den auf Ihrer Website angegebenen memory_limit überschreiten.

Die empfohlenen und vorinstallierten Werte auf Ihrem VPS-Paket sind wie folgt:

  • VPS S: memory_limit=1024M (1 GB)
  • VPS M: memory_limit=2048M (2 GB)
  • VPS L: memory_limit=4096M (4 GB)
  • VPS XL : memory_limit=6144M (6 GB)
  • VPS PRO S : memory_limit=7168M (7 GB)
  • VPS PRO M : memory_limit=8192M (8 GB)
  • VPS PRO L: memory_limit=9216M (9 GB)
  • VPS PRO XL: memory_limit=12288M (12 GB).

Wenn Sie den Wert von memory_limit jedoch anpassen möchten, können Sie dies über ISPConfig tun.

Ebenfalls auf der Registerkarte " Optionen " Ihrer Website in ISPConfig, empfehle ich Ihnen, die Zeile memory_limit zu den PHP.INI -Direktiven hinzuzufügen :

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Weitere Informationen zu diesem Thema: Wie ändere ich die php.ini-Datei meines VPS-Servers über ISPConfig?

Fatal error: Maximale Ausführungszeit überschritten.

Diese Fehlermeldung ist darauf zurückzuführen, dass Ihr PHP-Skript länger braucht, um ein Ergebnis zu erzielen, als es Ihre php.ini-Einstellungen erlauben.

Um dieses Problem zu beheben, können Sie die maximale Ausführungszeit erhöhen. Fügen Sie auf der Registerkarte "Optionen" Ihrer Website in ISPConfig die folgende Zeile zu den PHP.INI-Direktiven hinzu:

max_execution_time = 1800

Hier haben wir 1800 Sekunden eingestellt, was 30 Minuten entspricht.

Wichtig ist: Wenn die Ausführungszeit von PHP zu groß ist, kann Apache2 möglicherweise nicht bis zum Ende warten. Infolgedessen wird Apache2 einen Fehler 503 an Ihren Besucher senden (einen Fehler 522 oder 524, wenn Sie CloudFlare verwenden). Es ist dann wichtig, diesen Wert so klein wie möglich zu halten. Wir empfehlen, ihn auf 30 Sekunden zu setzen(max_execution_time = 30), es sei denn, Sie planen, auf Ihren Seiten massenhafte Import- oder Exportvorgänge durchzuführen.

SQLSTATE[28000] [1045] Zugriff für Benutzer verweigert.

Dies zeigt an, dass der MySQL-Benutzer oder das Passwort, das Sie verwenden, falsch ist.

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig
Beispiel für eine Fehlerseite des Typs "Access Denied" auf Prestashop.

Wenn Sie auf WordPress sind, kann die Fehlermeldung anders lauten:

Error establishing a database connection (Fehler beim Herstellen einer Datenbankverbindung).

Um zu überprüfen, ob eine MySQL-Benutzer/Passwort-Kombination funktionstüchtig ist, sollten Sie phpMyAdmin aufrufen und diese verwenden.

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Wenn phpMyAdmin auch einen Fehler wie diesen anzeigt, dann ist Ihr MySQL-Benutzer oder -Passwort falsch. Sie können es dann über ISPConfig zurücksetzen.

Link to database cannot be established:SQLSTATE[HY000] [2002] No such file or directory.

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Diese Fehlermeldung hängt damit zusammen, dass Ihre Website versucht, eine Verbindung zu Ihrem MySQL-Server über einen Unix-Socket anstelle einer TCP-Verbindung herzustellen.

Der Unix-Socket, den sie zu verwenden versucht, ist jedoch auf ihrer Ebene nicht zugänglich (z. B. aufgrund der openbase_dir-Beschränkung ).

Um dieses Problem zu lösen, müssen Sie Ihre Website zwingen, eine TCP-Verbindung zu verwenden, indem Sie in der Einstellung des MySQL-Servers Ihrer Website " localhost " durch " 127.0.0.1 " ersetzen.

Für einen Prestashop 1.6 müssen Sie die Datei config/settings.inc.php bearbeiten:

Diagnose und Behebung eines 500er-Fehlers auf einem VPS mit ISPConfig

Für einen Prestashop 1.7 müssen Sie die Datei app/config/parameters.php editieren:

[...] 'database_host' => '127.0.0.1', [...].

Für eine WordPress-Website müssen Sie die Datei wp-config.php bearbeiten:

[...] define('DB_HOST', '127.0.0.1'); [...].

Für eine Joomla-Website müssen Sie die Datei configuration.php bearbeiten:

[...] public $host = '127.0.0.1'; [...].

Videoverfahren für WordPress


Diesen Artikel bewerten :

Dieser Artikel war hilfreich für Sie ?

Article utileJa

Article non utileNicht

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Ähnliche Artikel

2mn von Lesen

Wie kann ich unter ISPConfig einen FTP-Account einrichten?

0mn von Lesen

SFTP-Verbindung

1mn von Lesen

Wie aktiviere ich SSL auf meiner Seite mit ISPConfig 3?

0mn von Lesen

Wie kann ich das FTP-Passwort von IspConfig aus ändern?


Stellen Sie eine Frage an das LWS-Team und seine Gemeinschaft