Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Procédure

Wat is een lege pagina of 500 error?

Error 500 is een paginastatuscode die staat voor Interne Serverfout. Het betekent dat er een fout is opgetreden in de webserver. Deze kan afkomstig zijn van de Apache2-webserver, van de PHP-interpreter, die de fout doorgeeft aan de webserver, of van de MySQL-database, die de fout doorgeeft aan PHP en op zijn beurt doorgeeft aan de webserver. Het ziet er als volgt uit:

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Bij sommige andere browsers ziet u misschien gewoon een lege pagina zonder inhoud:

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Voor Prestashop sites, ziet u een fout pagina gegenereerd door Prestashop :

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Om het probleem te diagnosticeren, is het praktischer om de fouten direct op uw website weer te geven (zelfs als ze zichtbaar zijn in het bestand error.log in de logboekmap die toegankelijk is via uw FTP-account.

PHP-fouten weergeven

Om PHP-fouten weer te geven, moet je het php.ini-bestand voor de betreffende website aanpassen. Klik in ISPConfig op Sites en selecteer vervolgens de betreffende website:

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Klik vervolgens op het tabblad "Options" en voeg de volgende regel toe aan het veld "Custom php.ini settings":

display_errors = On

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Het is ook raadzaam om de volgende regel toe te voegen om ervoor te zorgen dat fouten worden gerapporteerd, zodat ze worden weergegeven op het scherm (in het geval dat het script dit standaard uitschakelt):

error_reporting = E_ALL

Debugmodus inschakelen op uw website

Sommige CMS en frameworks zoals WordPress, Prestashop, Symfony, Laravel, enz. kunnen het feit negeren dat display_errors is ingesteld op On in PHP, omdat ze hun eigen foutbeheersystemen hebben.

Debugmodus inschakelen op WordPress

Om de foutopsporingsmodus in te schakelen op een WordPress-gebaseerde site, moet je het bestand wp-config.php aanpassen door de waarde van WP_DEBUG in te stellen op true en WP_DEBUG_DISPLAY ook op true.

Als WP_DEBUG_DISPLAY niet in wp-config.php staat, moet je het na WP_DEBUG toevoegen:

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

Debugmodus inschakelen op Prestashop

Om de foutopsporingsmodus in te schakelen op Prestashop, moet je het bestand config/defines.inc.php aanpassen. Stel in dit bestand _PS_MODE_DEV_ in op true.

define('_PS_MODE_DEV_', true);

De foutopsporingsmodus activeren in Joomla

Om de foutopsporingsmodus in te schakelen in Joomla, moet je het configuration.php bestand aanpassen. Stel in dit bestand $debug in op 1 en $error_reporting op maximum.

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

Debugmodus inschakelen op Laravel

Om de debugmodus te activeren op Laravel, moet je het .env-bestand aanpassen door APP_DEBUG op true te zetten:

APP_DEBUG=true

Vervolgens moet je de cache van het configuratiebestand verwijderen. Voer op je console het volgende commando uit:

php artisan config:clear

PHP-fouten begrijpen

De tweede belangrijkste stap is om de fouten te begrijpen en een oplossing te vinden.

Parseerfout - syntaxisfout

De "parse error" en "syntax error" fouten worden veroorzaakt door slecht geschreven PHP code: geen puntkomma aan het einde, haakjes die niet sluiten, omgekeerde komma's, etc. U moet het script op uw website controleren.

Bepaalde syntaxen kunnen ook alleen problemen veroorzaken bij bepaalde PHP-versies, omdat de PHP-syntax tussen verschillende versies evolueert. Het gebruik van vierkante haken om een array te declareren werkt bijvoorbeeld wel in PHP 7.2, maar niet in PHP 7.4.

Het is daarom de moeite waard omde PHP-versie te controleren enaan te passen aan de specifieke kenmerken van je website.

Fatale fout: aanroep naar ongedefinieerde functie

Wanneer deze fout optreedt, bestaat de functie die PHP probeert aan te roepen niet. Dit probleem doet zich voor wanneer bestanden ontbreken of onvolledig zijn op je website.

Fatale fout: Uncaught Error: Aanroep naar ongedefinieerde functie mysql_connect()

Deze foutmelding geeft aan dat de functie mysql_connect() niet bestaat. In feite bestaat deze functie niet meer op PHP 7.0 en later. Je zult een PHP 5.x versie moeten gebruiken om je website te laten werken.

Fatale fout: kan niet opnieuw declareren

Wanneer deze fout optreedt, is dezelfde functienaam meerdere keren gedeclareerd. Dit probleem treedt vooral op wanneer plugins, thema's, modules, enz. dezelfde functienaam gebruiken.

Fatale fout: toegestane geheugengrootte uitgeput

Dit betekent dat het maximaal toegestane RAM-geheugen is overschreden. Dit probleem treedt op wanneer u de memory_limit overschrijdt die is opgegeven op uw website.

De aanbevolen waarden die vooraf op uw VPS-pakket zijn geïnstalleerd, zijn als volgt:

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

Als u echter de memory_limit waarde wilt aanpassen, kunt u dit doen vanuit ISPConfig.

Voeg in het tabblad "Options " van je ISPConfig website de regel memory_limit toe aan de PHP.INI directives:

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Meer informatie over dit onderwerp: Hoe wijzig ik het php.ini bestand op mijn VPS server via ISPConfig?

Fatale fout: Maximale uitvoeringstijd overschreden

Deze foutmelding is gekoppeld aan het feit dat uw PHP script er langer over doet om een resultaat te produceren dan uw php.ini parameters toestaan.

Om dit probleem op te lossen, kunt u de maximale uitvoeringstijd verhogen. Nog steeds in het tabblad 'Opties' van uw ISPConfig website, voegt u de volgende regel toe aan de PHP.INI richtlijnen:

max_execution_time = 1800

Hier hebben we 1800 seconden ingesteld, of 30 minuten.

Belangrijk: Als de uitvoeringstijd van PHP te lang is, kan het zijn dat Apache2 niet tot het einde kan wachten. Als gevolg daarvan zal Apache2 een 503-fout naar je bezoeker sturen (een 522- of 524-fout als je CloudFlare gebruikt). Het is daarom belangrijk om deze waarde zo laag mogelijk te houden. We raden u aan om deze op 30 seconden in te stellen(max_execution_time = 30), tenzij u van plan bent om massale import- of exportbewerkingen uit te voeren op uw sites.

SQLSTATE[28000] [1045] Toegang geweigerd voor gebruiker

Dit geeft aan dat de MySQL gebruiker of het wachtwoord dat u gebruikt onjuist is.

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig
Voorbeeld van een foutpagina "Toegang geweigerd" op Prestashop

Als u WordPress gebruikt, kan de foutmelding anders zijn:

Fout bij het maken van een databaseverbinding

Om te controleren of een MySQL gebruiker/wachtwoord combinatie functioneel is, raad ik u aan om naar phpMyAdmin te gaan en deze te gebruiken.

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Als phpMyAdmin ook zo'n foutmelding geeft, dan is je MySQL gebruiker of wachtwoord onjuist. U kunt het dan opnieuw instellen in ISPConfig.

Koppeling met database kan niet tot stand worden gebracht:SQLSTATE[HY000] [2002] Geen bestand of map van deze aard

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Deze foutmelding is gekoppeld aan het feit dat uw website probeert verbinding te maken met uw MySQL server via een Unix socket in plaats van een TCP verbinding.

De Unix socket die het probeert te gebruiken is echter niet toegankelijk op zijn niveau (bijvoorbeeld vanwege de openbase_dir beperking).

Om dit probleem op te lossen, moet u uw website dwingen om de TCP-verbinding te gebruiken door "localhost " te vervangen door "127.0.0.1 " in de MySQL serverparameter van uw website.

Voor Prestashop 1.6 moet u het bestand config/settings.inc.php bewerken:

Diagnose en correctie van een 500 foutmelding op een VPS met ISPConfig

Voor Prestashop 1.7 moet u het bestand app/config/parameters.php bewerken:

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

Voor een WordPress site moet u het wp-config.php bestand bewerken:

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

Voor een Joomla site moet u het configuration.php bestand bewerken:

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

Video procedure voor WordPress


Beoordeel dit artikel :

Dit artikel was nuttig voor jou ?

Article utileJa

Article non utileGeen

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)

Vergelijkbare artikelen

2mn lezen

Hoe maak ik een FTP account aan in ISPConfig?

0mn lezen

SFTP-verbinding

1mn lezen

Hoe activeer ik SSL op mijn site met ISPConfig 3?

0mn lezen

Hoe verander ik het FTP-wachtwoord van IspConfig?


Stel een vraag aan het LWS-team en de gemeenschap