Betygsätt denna artikel :
2,5/5 | 2 Yttrande
Den här artikeln var användbar för dig ?
Ja
Nej
Vous avez noté 0 étoile(s)
Sommaire
Procédure
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.
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:

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.

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:

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:

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.
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.
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:

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:

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:

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.
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:
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:

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

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

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.

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

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:
Det här felet visar ofta att en funktion inte har definierats, som i följande kod:

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:
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:

Det är fullt möjligt att undvika detta fel genom att:
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:
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:
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 :
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:
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 ?
Ja
Nej
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?