Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

Procédure

Vad är en tom sida eller ett 500-fel?

Fel 500 är en sidstatuskod som står för Internal Server Error (internt serverfel). Det betyder att ett fel har uppstått i webbservern. Detta kan ha kommit från Apache2-webbservern, från PHP-tolken, som skickade felet till webbservern, eller från MySQL-databasen, som skickade felet till PHP och i sin tur skickade det till webbservern. Det ser ut så här:

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

Som för vissa andra webbläsare kanske du bara ser en tom sida utan innehåll:

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

För Prestashop-webbplatser kommer du att se en felsida som genereras av Prestashop :

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

För att diagnostisera problemet är det mer praktiskt att visa felen direkt på din webbplats (även om de är synliga i filen error.log i loggmappen som är tillgänglig via ditt FTP-konto.

Visa PHP-fel

För att visa PHP-fel måste du ändra php.ini-filen för den berörda webbplatsen. I ISPConfig klickar du på Sites och väljer sedan den aktuella webbplatsen:

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

Klicka sedan på fliken "Options" och lägg till följande rad i fältet "Custom php.ini settings":

display_errors = På

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

Det är också lämpligt att lägga till följande rad för att se till att fel rapporteras så att de visas på skärmen (om skriptet inaktiverar detta som standard):

error_reporting = E_ALL

Aktivera felsökningsläge på din webbplats

Vissa CMS och ramverk som WordPress, Prestashop, Symfony, Laravel etc. kan ignorera det faktum att display_errors är inställt på On i PHP, eftersom de har sina egna felhanteringssystem.

Aktivera felsökningsläge på WordPress

För att aktivera felsökningsläget på en WordPress-baserad webbplats måste du ändra filen wp-config.php genom att ställa in värdet för WP_DEBUG till true och WP_DEBUG_DISPLAY till true också.

Om WP_DEBUG_DISPLAY inte finns i wp-config.php måste du lägga till det efter WP_DEBUG:

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

Aktivera felsökningsläge på Prestashop

För att aktivera felsökningsläget på Prestashop måste du ändra filen config/defines.inc.php. I den här filen ställer du in _PS_MODE_DEV_ till true.

define('_PS_MODE_DEV_', true);

Aktivera felsökningsläge på Joomla

För att aktivera felsökningsläget på Joomla måste du ändra filen configuration.php. I den här filen ställer du in $debug till 1 och $error_reporting till maximum.

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

Aktivera felsökningsläge på Laravel

För att aktivera felsökningsläget på Laravel måste du ändra .env-filen genom att ställa in APP_DEBUG till true:

APP_DEBUG=true

Därefter måste du ta bort konfigurationsfilens cache. Kör följande kommando på din konsol:

php artisan config:clear

Förstå PHP-fel

Det näst viktigaste steget är att förstå felen och hitta en lösning.

Parse-fel - syntax-fel

Parse error" och "syntax error" fel orsakas av dåligt skriven PHP-kod: saknade semikolon i slutet, parenteser som inte stängs, inverterade kommatecken, etc. Du måste kontrollera skriptet på din webbplats.

Vissa syntaxer kan också orsaka problem endast på vissa PHP-versioner, eftersom PHP-syntaxen utvecklas mellan flera versioner. Till exempel fungerar användningen av hakparenteser för att deklarera en array på PHP 7.2, men inte på PHP 7.4.

Det skulle därför vara värt att kontrollera ochjustera PHP-versionen enligt specifikationerna på din webbplats.

Fatalt fel: anrop till odefinierad funktion

När detta fel uppstår finns inte den funktion som PHP försöker anropa. Detta problem uppstår när filer saknas eller är ofullständiga på din webbplats.

Fatalt fel: Oavslutat fel: Anrop till odefinierad funktion mysql_connect()

Detta felmeddelande indikerar att mysql_connect() -funktionen inte finns. Faktum är att denna funktion inte längre existerar på PHP 7.0 och senare. Du måste använda en PHP 5.x-version för att din webbplats ska fungera.

Fatalt fel: kan inte omdefiniera

När det här felet inträffar har samma funktionsnamn deklarerats flera gånger. Detta problem uppstår i synnerhet när plugins, teman, moduler etc. använder samma funktionsnamn.

Fatal error: tillåten minnesstorlek överskriden

Detta innebär att det maximalt tillåtna RAM-minnet har överskridits. Det här problemet uppstår när du överskrider den memory_limit som anges på din webbplats.

De rekommenderade värdena som är förinstallerade på ditt VPS-paket är följande:

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

Om du vill anpassa memory_limit-värdet kan du dock göra det från ISPConfig.

På fliken "Options " på din ISPConfig-webbplats lägger du till raden memory_limit i direktiven i PHP.INI:

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

Mer information om detta ämne: Hur ändrar jag php.ini-filen på min VPS-server via ISPConfig?

Fatal error: Maximal exekveringstid överskriden

Detta felmeddelande är kopplat till det faktum att ditt PHP-skript tar längre tid att producera ett resultat än vad dina php.ini-parametrar tillåter.

För att övervinna detta problem kan du öka den maximala exekveringstiden. Fortfarande i fliken "Alternativ" på din ISPConfig-webbplats, lägg till följande rad i PHP.INI-direktiven:

max_execution_time = 1800

Här har vi ställt in 1800 sekunder, eller 30 minuter.

Detta är viktigt: Om PHP:s exekveringstid är för lång kan det hända att Apache2 inte kan vänta till slutet. Som ett resultat av detta kommer Apache2 att skicka ett 503-fel till din besökare (ett 522- eller 524-fel om du använder CloudFlare). Det är därför viktigt att hålla detta värde så lågt som möjligt. Vi rekommenderar att du ställer in det på 30 sekunder(max_execution_time = 30), såvida du inte planerar att utföra massimport eller export på dina webbplatser.

SQLSTATE[28000] [1045] Åtkomst nekad för användare

Detta indikerar att den MySQL-användare eller det lösenord du använder är felaktigt.

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig
Exempel på en felsida med "Åtkomst nekad" på Prestashop

Om du använder WordPress kan felmeddelandet se annorlunda ut:

Fel vid upprättande av en databasanslutning

För att kontrollera om en MySQL-användare/lösenordskombination är funktionell föreslår jag att du går till phpMyAdmin och använder den.

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

Om phpMyAdmin också visar ett fel som detta, är din MySQL-användare eller ditt lösenord felaktigt. Du kan sedan återställa det i ISPConfig.

Länk till databas kan inte upprättas:SQLSTATE[HY000] [2002] Ingen sådan fil eller katalog

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

Det här felmeddelandet är kopplat till att din webbplats försöker ansluta till din MySQL-server med hjälp av en Unix-socket istället för en TCP-anslutning.

Unix-sockeln som den försöker använda är dock inte tillgänglig på sin nivå (till exempel på grund av begränsningen openbase_dir ).

För att lösa detta problem måste du tvinga din webbplats att använda TCP-anslutningen genom att ersätta "localhost " med "127.0.0.1 " i MySQL-serverparametern på din webbplats.

För Prestashop 1.6 måste du redigera filen config/settings.inc.php:

Diagnostisera och korrigera ett 500-fel på en VPS med ISPConfig

För Prestashop 1.7 måste du redigera filen app/config/parameters. php:

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

För en WordPress-webbplats måste du redigera filen wp-config.php:

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

För en Joomla-webbplats måste du redigera filen configuration.php:

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

Videoprocedur för WordPress


Betygsätt denna artikel :

Den här artikeln var användbar för dig ?

Article utileJa

Article non utileNej

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)

Liknande artiklar

2mn läsning

Hur skapar jag ett FTP-konto i ISPConfig?

0mn läsning

SFTP-anslutning

1mn läsning

Hur aktiverar jag SSL på min webbplats med ISPConfig 3?

0mn läsning

Hur ändrar jag FTP-lösenordet från IspConfig?


Ställ en fråga till AWS-teamet och dess community