Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Procédure

Så här felsöker du en tom sida eller ett 500-fel

När du försöker besöka en webbplats och du ser felmeddelandet "500 Internal Server Error" betyder det att något har gått fel med webbplatsen. Felet kan vara särskilt frustrerande eftersom det kanske inte ger dig någon information om den specifika orsaken till felet. Den här artikeln visar hur du felsöker ett 500-fel på din webbplats.

Vad är skillnaden mellan en tom sida och ett 500-fel?

En tom sida är inte nödvändigtvis ett 500-fel, och vice versa. Ett 500-fel innebär att ett fel har uppstått under behandlingen av HTTP-begäran. Det kan vara ett fel i utförandet av det associerade skriptet, ett problem med åtkomst till en resurs etc. som gör att webbservern returnerar ett svar med felkoden 500. En tom sida innebär å andra sidan att webbservern inte har returnerat några bodyer i sitt svar, eller till och med inget svar alls.

I vissa situationer innebär ett 500-fel att webbservern inte har något svar att ge och därför orsakar en tom sida. Detta kan vara fallet om ingen 500-felsida har konfigurerats, eller om felmeddelandet har inaktiverats och webbplatsen därför inte har något felmeddelande att visa.

Vissa webbläsare som Chrome och Internet Explorer visar en egen 500-felsida när de får felkoden i HTTP-headern utan att servern tillhandahåller något innehåll i svarstexten:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

500-fel är ofta kopplade till ett problem med en av de .htaccess-filer som används på webbadressen, eller ett PHP-fel. Så genom att aktivera felvisning med alternativet display_errors i php.ini bör du se PHP-fel visas istället för 500-felet.

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Hur kan jag se om det är ett 500-fel?

För att avgöra om du har ett 500-fel måste du titta på HTTP-felkoden som returneras av webbservern till din webbläsare. Detta kan identifieras med hjälp av fliken "Nätverk" i webbläsarens utvecklarkonsol:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Hur identifierar du de problem som orsakar 500-felet?

Det första du bör göra är att kontrollera de loggfiler som är kopplade till HTTP-begäran: Apache-loggfilen och PHP-loggfilen. De senaste 300 händelserna som rör dig i Apache-loggfilen kan ses från ikonen "Errors" i ditt cPanel-gränssnitt, medan PHP-loggfilen i allmänhet är filen "error_log" som syns bredvid den berörda PHP-filen:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Det är dock möjligt att fel inte visas i loggarna. Detta kan vara resultatet av en konfiguration som förhindrar att PHP-fel visas och/eller loggas. Ta reda på mer om detta.

Om du använder WordPress, Prestashop eller Joomla är det dock mycket möjligt att inga ändringar kommer att synas. I så fall måste duaktivera felvisning i deras respektive konfigurationsfiler.

Hur aktiverar du felsökningsläget på din webbplats?

De flesta CMS som WordPress har ett internt felhanteringssystem som hindrar PHP-parametrarna från att bearbetas och vidta åtgärder beroende på vilket fel som uppstått. Genom att aktivera felsökningsläget ber du detta interna felhanteringssystem att visa fel och/eller öka ordrikedomen i loggfilerna.

För att aktivera felsökningsläget kan du ansluta direkt till"Filhanteraren" som är tillgänglig från ditt cPanel-gränssnitt och redigera den tillhörande konfigurationsfilen för att aktivera detta läge.

Hur aktiverar jag felsökningsläget på WordPress?

Om din webbplats skapades med WordPress kan du aktivera felsökningsläget från filen"wp-config.php" i roten av ditt webbhotell. Detta gör du genom att ändra konstanten"WP_DEBUG" till"true" istället för"false".

Om du vill kan du också lägga till konstanten WP_DEBUG_LOG för att registrera fel i filen"wp-content/debug.log".

Du bör också kontrollera att konstanten"WP_DEBUG_DISPLAY" inte är definierad i din konfigurationsfil. Om den är det måste du också ställa in detta värde till true.

Konfigurationsfilen bör se ut så här:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Hur aktiverar jag felsökningsläget på Prestashop?

På Prestashop kan du aktivera felsökningsläget genom att gå till filen"define.inc.php" i mappen"config".

Du kommer att behöva ändra "_PS_MOD_DEV_" till"true" istället för"false". Om det behövs kan du också aktivera läget"_PS_DEBUG_PROFILING_", vilket ger dig mer information.

Konfigurationsfilen bör se ut så här:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Hur aktiverar jag felsökningsläget på Joomla?

För Joomla kan du aktivera felsökningsläget genom att redigera filen configuration.php. I den här filen måste du ändra variabeln"$debug" till 1 för att aktivera den. Du måste också ändra variabeln $error_reporting till"maximum" så att alla fel visas.

Konfigurationsfilen bör se ut så här:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Hur aktiverar jag felsökningsläget på andra CMS?

Det är mycket möjligt att du använder ett annat CMS. För att ta reda på hur du aktiverar felsökningsläget kan du också skriva"CMS-namn + Debug" i sökmotorn. Detta bör ta dig direkt till en handledning som förklarar hur du aktiverar detta läge.

Förstå de olika PHP-felen

Det är relativt lätt att förstå ursprunget till ett 500-fel, eftersom det ofta är samma fel som återkommer.

1. Det första och vanligaste felet är"Parse error". Detta indikerar ofta ett syntaxproblem (ett fel i programmeringen av din kod). Felet definieras på följande sätt:

  • Parse Error: definierar att detta är ett kodfel
  • Ett meddelande på engelska visas för att ge mer information om typen av fel
  • Sökvägen till filen där felet inträffar och den rad som påverkas av felet.

Om vi tar exemplet med filen index.php på vår Wordpress-webbplats där ett semikolon saknas i slutet av rad 17, är webbfilen där felet hittas följande:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Felet som syns när du går till URL:en kommer att vara följande:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

2. Felet"Parse error: syntax error, unexpected end of file" indikerar att något verkar saknas i slutet av filen.

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

I den här koden saknas till exempel det hakparentes som avslutar if-satsen.

3. Felet "Parse Error: syntax error, unexpected (T_STRING), expecting ','or'; " beror ofta på ett fel som är relaterat till citattecknet i din kod.

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

I den här koden saknas backslash på ordet"error", som i följande kod, för att det ska fungera:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

4. Du kan också se ett fel av typen"Fatal Error". Detta är ett av de allvarligaste felen du kan stöta på. Det gör också att ditt skript stannar. Det definieras på följande sätt:

  • Fatal Error: Detta meddelande anger att felet är fatalt och kommer att stoppa skriptet från att köras.
  • Meddelande: Ett meddelande följer efter koden "Fatal error" för att förklara orsaken till felet.
  • Åtkomstväg: Åtkomstvägen och den rad som orsakar problemet anges.

Det här felet visar ofta att en funktion inte har definierats, som i följande kod:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Du kommer därför att se följande fel: Fatal Error: Oavslutat fel: Anrop till odefinierad funktion

Detta fel beror ofta på något av följande:

  • Du har ett skrivfel i den funktion du har definierat
  • PHP-filen som innehåller funktionen har inte laddats in i ditt skript
  • Om funktionen är en del av ett PHP-tillägg kanske PHP-tillägget inte har laddats.

5. Det är mycket möjligt att du kommer att få ett"Fatal Error: cannot redeclare"-fel som indikerar att funktionen har definierats en andra gång. Koden skulle kunna se ut så här:

Diagnostisera och korrigera ett 500-fel på en webbplats som hostas på cPanel

Det är fullt möjligt att undvika detta fel genom att:

  • ändra namnet på den omdefinierade funktionen
  • Det kan också vara ett problem med namnrymden. I så fall måste du kontrollera namnrymden och ange den fullständiga åtkomstvägen till funktionen.

6. Du kan få felet"Fatal Error: tillåten minnesstorlek uttömd".

Detta indikerar att PHP-skriptet använder för mycket RAM och överskrider det maximala värdet som tillåts på PHP.INI. Detta är "memory_limit"-värdet. Du kan ändra detta värde i cPanel-formlerna. Om problemet kvarstår trots att du ökar värdet till en tillräckligt hög nivå, kan det bero på att en operation som förbrukar mycket minne upprepas för ofta (eller till och med i det oändliga) i ditt PHP-skript. Oändliga loopar är också möjliga orsaker till denna typ av fel.

7. Felet"Fatal Error: Maximum execution time exceeded" innebär att exekveringstiden för ditt skript har överskridits. Du kan ändra värdet"max_execution_time" i din PHP.INI-konfiguration. Observera dock att alla processer som körs i mer än 490 sekunder inte är tillåtna på våra delade hostingpaket med cPanel, men framför allt att om en sida kräver en högre max_execution_time, skulle detta också innebära att den laddas långsammare, vilket i allmänhet inte är önskvärt. Om sidan som har genererat det här felet behandlar mycket data rekommenderar vi att du utför batchbehandling. Till exempel, istället för att bearbeta 1000 produkter varje gång sidan öppnas, skulle det vara mer lämpligt att bearbeta satser om 100 produkter, till exempel med hjälp av AJAX-förfrågningar. Och du får en lägre TTFB (Time-To-First-Byte).

8. Felet"Fatal error: Uncaught Error: Call to undefined function mysql_connect()" innebär att modulen"mysql" inte är laddad i den PHP-version du använder. Felet uppstår när:

  • PHP-version 7 eller högre används men din webbplats inte är kompatibel med denna version
  • Du använder en PHP5-version men "MySQL"-modulen är inte aktiverad

Du kan enkelt ändra PHP-versionen genom att gå till"Välj en PHP-version" i ditt cPanel-gränssnitt.

9. Felet"Permission denied" innebär att PHP inte har rätt att komma åt en definierad fil eller mapp. Detta fel kan ofta ses i följande form:

Warning file_put_contacts(/home/c123456/public_html/dossier/file.php): failed to open stream: Permission denied in /home/c123456/index.php on line 20

I det här fallet måste du kontrollera chmods på dina filer och mappar. I princip är chmods enligt följande:

  • 644 : För en fil
  • 755 : för en mapp

10. Felet"Ingen sådan fil eller katalog" indikerar att PHP behöver inkludera en fil som inte verkar finnas på ditt FTP-utrymme. Felet representerar följande:

Varning: require_once(/home/c123456/public_html/dossier/fichier.php): misslyckades med att öppna stream: Ingen sådan fil eller katalog i /home/c123456/public_html/index.php på rad 20

I det här fallet måste du :

  • Kontrollera att filen i fråga finns på ditt FTP-utrymme. Om så inte är fallet måste du ladda upp filen på nytt.
  • Kontrollera att du har rätt rättigheter till filen, d.v.s. CHMOD. Mappar är i allmänhet chmod 755 och filer är chmod 644.
  • Kontrollera att den sökväg som anges i ditt PHP-skript är den rätta.

11. Du kan se felet"Warning:session_start(): Cannot send session cookie headers already sent" vilket indikerar att en ström redan har genererats och att det därför inte längre är möjligt att använda funktionen"session_start". Detta fel kan ses i följande form:

Varning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/c123456/public_html/dossier/session.php:2 in /home/c123456/public_html/dossier/session.php on line 20

De 3 möjliga orsakerna till detta fel är följande:

  • ett direktiv som visar text innan funktionen anropas
  • Ett problem med teckenuppsättningen (i synnerhet BOM_UTF8). Detta fel uppstår alltid på den första raden i din kod
  • Tecken som är osynliga på skärmen men som finns i dina filer. Med kodredigerare som Visual Studio Code kan du se dessa fel.

Slutsats

Du kan nu ta reda på orsaken till ett 500-fel eller en tom sida. Du kan också felsöka din webbplats.

Tveka inte att ställa dina frågor och/eller kommentera.

Betygsätt denna artikel :

2,5/5 | 2 Yttrande

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

3mn läsning

Wordpress på cPanel: Lösning av problemet med vit sida eller 500-fel

1mn läsning

Så här visar du Apache- och PHP-loggfiler på cPanel

0mn läsning

Hur korrigerar jag ett 403 Forbidden-fel på cPanel?

0mn läsning

Hur korrigerar jag ett 404-fel på cPanel?


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