Spring til indhold
NanoHost

Web og drift

Hvordan løser du 500 internal server error

En 500 Internal Server Error er en generisk serverfejl, der kan lamme din hjemmeside. Få den komplette tekniske guide til, hvordan du diagnosticerer og løser fejlen permanent.

Af Kasper Stück 2 min. læsetid

En 500 Internal Server Error (også kendt som HTTP Error 500) betyder kort fortalt, at din webserver er stødt på en uventet betingelse, som forhindrer den i at fuldføre den anmodning, browseren har sendt. I modsætning til for eksempel en 404-fejl, der peger på en specifik manglende side, indikerer en 500-fejl, at noget er gået galt dybt nede i maskinrummet på dit webhotel eller din dedikerede server. Serveren kan i dette tilfælde blot ikke identificere præcis, hvad problemet er, eller nægter at vise følsomme tekniske detaljer til den besøgende.

Denne fejl er berygtet for at være generisk. Den fortæller dig blot, at noget er i stykker, men ikke hvad der er i stykker. I denne guide får du en teknisk, men lettilgængelig og dybdegående gennemgang af de oftest forekommende problemer, og vi præsenterer en række afprøvede metoder til systematisk diagnosticering. Målet er, at du hurtigt og sikkert kan få din hjemmeside online igen.

Typiske årsager til en 500 Internal Server Error

Selvom fejlmeddelelsen er vag og udefineret for slutbrugeren, eksisterer der et velkendt sæt af typiske syndere under motorhjelmen. Dette gør sig især gældende, hvis du benytter et populært CMS som WordPress eller kører en webshop baseret på WooCommerce:

  1. Korrupt .htaccess-fil: Syntaksfejl, forkerte omskrivningsregler (rewrite rules) eller konflikter i serverens primære konfigurationsfil.
  2. Udtømt PHP Memory Limit: Et script (for eksempel et komplekst plugin eller tema) forsøger at allokere mere serverhukommelse, end PHP-konfigurationen tillader.
  3. Konflikter i plugins eller temaer: Dårligt kodede udvidelser eller inkompatibilitet mellem to plugins, der forårsager fatale PHP-fejl (Fatal Errors).
  4. Forkerte fil- og mappetilladelser: Webserveren (som Apache eller Nginx) har ikke de korrekte rettigheder (file permissions) til at læse eller eksekvere afgørende systemfiler.
  5. Databaseproblemer: Brudte forbindelser, korrupte tabeller eller periodisk overbelastede databaseservere, der fremtvinger et nedbrud.
  6. Server-timeout (Max Execution Time): Et script tager uforholdsmæssigt lang tid at afvikle, og webserveren afbryder processen for ikke at spærre for andre anmodninger.

Før du begynder: Opret en backup og brug et staging-miljø

Når du begynder at fejlsøge en HTTP 500-fejl, arbejder du ofte direkte med serverens kernefiler, PHP-konfigurationer eller den bagvedliggende database. En utilsigtet eller forkert ændring kan hurtigt gøre ondt værre, og i yderste konsekvens risikerer du at slette eller korrumpere vigtige data.

Vi anbefaler kraftigt følgende forholdsregler:

  • Tag en komplet backup af både dine filer og din database, inden du foretager manuelle ændringer. Skulle noget gå galt, kan du altid rulle tilbage.
  • Benyt et staging-miljø (et isoleret testmiljø af din side) til at afprøve dine rettelser først, forudsat at dit webhosting-setup understøtter dette. På den måde undgår du at eksperimentere på en live hjemmeside, som dine kunder måske forsøger at besøge.
  • Gør brug af professionel hjælp, hvis du ikke er fortrolig med serveradministration eller FTP-klienter. Hvis du ønsker professionel drift og overvågning fremadrettet, kan det give ro i maven at oprette en WordPress-serviceaftale eller benytte dedikeret WordPress support.

Fejlfinding trin for trin

Når sikkerheden er på plads og backuppen er sikret, kan vi begynde den systematiske fejlfinding. Det er vigtigt, at du går metodisk frem, ændrer én ting ad gangen, og derefter tester din hjemmeside, før du fortsætter til næste trin.

1. Undersøg serverens Error Logs (Fejl-logfiler)

At gætte sig frem til løsningen på en 500-fejl svarer til at lede efter en nål i en høstak med bind for øjnene. Dit første – og suverænt vigtigste – stop bør altid være serverens fejl-logfiler (Error Logs).

Logfilerne registrerer præcis, hvilken proces, handling eller linje kode, der fejlede i sekundet op til 500-fejlen. Du kan typisk finde og åbne logfilerne via dit kontrolpanel (såsom cPanel, Plesk eller et brugerdefineret hosting-dashboard) eller ved at oprette forbindelse direkte via SSH/SFTP. Filstierne kan variere, men de findes ofte i mapper som /var/log/apache2/error.log eller /var/log/nginx/error.log.

Søg efter de allernyeste log-linjer med koder som [error], Fatal error eller Parse error. I langt de fleste tilfælde vil loggen pege direkte på den specifikke fil og det præcise linjenummer, der udløste fejlen. Hvis synderen er et specifikt plugin, vil navnet på plugin-mappen typisk fremgå af fejlmeddelelsen.

Har du et WordPress-site, og har du ikke adgang til serverens rå logfiler, kan du midlertidigt aktivere indbygget debugging. Dette gøres ved at åbne din wp-config.php-fil og ændre (eller tilføje) linjen define( 'WP_DEBUG', true );. I mange tilfælde vil dette tvinge PHP-fejlen frem direkte på skærmen i stedet for den blinde 500-besked.

2. Tjek og nulstil .htaccess-filen (På Apache/LiteSpeed)

En af de absolut mest udbredte årsager til 500-fejl på Apache- eller LiteSpeed-servere er en korrupt eller forkert opsat .htaccess-fil. Dette sker ganske ofte efter installation af et nyt plugin – særligt avancerede caching-, optimerings- eller sikkerheds-plugins, som automatisk forsøger at indsætte restriktive regler i filen.

Sådan isolerer og tester du problemet:

  1. Opret forbindelse til din server via et FTP-program (som FileZilla) eller via filhåndteringen i dit webhotels kontrolpanel.
  2. Find filen .htaccess. Den er skjult som standard og ligger typisk i roden af din webmappe (for eksempel public_html eller htdocs).
  3. Omdøb filen midlertidigt til noget andet, eksempelvis .htaccess_gammel.
  4. Gå til din browser og genindlæs hjemmesiden (husk eventuelt at tømme browsercachen eller forsøg i et inkognitovindue).

Hvis siden pludselig indlæser normalt, ved du med sikkerhed, at problemet stammede fra reglerne i din gamle .htaccess. For at generere en ny, ren standardfil i WordPress, skal du blot logge ind i dit admin-panel, navigere til Indstillinger > Permanente links, scrolle ned i bunden, og trykke på “Gem ændringer” uden overhovedet at ændre i selve indstillingerne. Dette tvinger CMS’et til automatisk at generere en frisk, valid .htaccess.

(Kører din server udelukkende på Nginx, vil du ikke have en .htaccess-fil. Her skal problemet typisk lokaliseres i serverblokkene inde i nginx.conf.)

3. Deaktiver plugins og temaer via FTP

Giver logfilerne intet tydeligt svar, og løste nulstillingen af .htaccess ikke problemet, er næste logiske skridt at udelukke konflikter i tredjeparts-kode. Fejlbehæftede, forældede eller indbyrdes inkompatible plugins er notorisk kendte for at trække hele webservere ned, specielt i forbindelse med store softwareopdateringer.

Fejlsøgning når du er låst ude af dashboardet: En 500-fejl blokerer dig ofte for at logge ind i selve WordPress (wp-admin). Derfor må du deaktivere plugins manuelt via FTP eller SFTP:

  1. Naviger til mappen /wp-content/.
  2. Find mappen, der hedder plugins, og omdøb den til for eksempel plugins_deaktiveret. Dette trick deaktiverer øjeblikkeligt samtlige udvidelser på tværs af hele siden.
  3. Genindlæs din hjemmeside. Hvis siden nu virker (omend den måske ser forkert ud eller mangler funktionalitet), har du bekræftet, at et specifikt plugin er synderen.
  4. Omdøb mappen tilbage til dens korrekte navn, plugins.
  5. Gå nu ind i selve plugins-mappen. Omdøb hver enkelt undermappe én ad gangen (for eksempel woocommerce til woocommerce_test), og genindlæs hjemmesiden for hver mappe, du omdøber. Når siden pludselig crasher igen (eller begynder at virke igen, alt efter fremgangsmåde), har du identificeret det specifikke plugin, der forårsager konflikten.

På præcis samme måde kan du teste dit nuværende tema ved at gå i /wp-content/themes/, omdøbe dit aktive temas mappe og derved lade WordPress falde tilbage på et standardtema som Twenty Twenty-Four (forudsat at det er installeret).

4. Kontrollér PHP Memory Limit og køretid

Tunge serverprocesser, dårligt optimerede scripts eller afvikling af massive databasetræk – såsom generering af komplekse PDF-fakturaer, behandling af store billeder eller bulk-import af hundredevis af produkter til din webshop – kan lynhurtigt ramme serverens hårde grænse for allokeret hukommelse.

Når et script overskrider grænsen for tilladt RAM, vil PHP-processen blive afbrudt tvangsmæssigt og kaste en Fatal Error, som browseren oftest præsenterer som en 500 Internal Server Error.

Kontrollér først den aktuelle PHP-grænse, den konkrete fejl i loggen og hvilken proces der udløser den. En højere grænse kan være relevant ved en legitim, midlertidigt tung opgave, men værdien afhænger af servermiljø, trafik og applikationens behov.

Brug helst webhotellets dokumenterede PHP-indstillinger eller bed supporten vurdere ændringen. Redigering af wp-config.php, php.ini eller .htaccess er en avanceret handling, som bør udføres med en frisk backup, en kendt rollback og helst først på staging. Apache-, Nginx- og PHP-FPM-miljøer håndterer indstillinger forskelligt, så en kodebid fra en tilfældig guide kan selv udløse endnu en 500-fejl.

Det samme gælder max_execution_time: Find først ud af, hvorfor processen tager for lang tid. En højere grænse kan skjule langsom kode, tunge databaseforespørgsler eller en fejlet integration. Hvis ressourcer ofte er flaskehalsen, bør kode, database og webhosting vurderes samlet.

5. Kontroller databaseforbindelsen og filtilladelser (File Permissions)

Selvom klassiske databasefejl normalt resulterer i deres egne dedikerede fejlmeddelelser (såsom “Error establishing a database connection” i WordPress), kan alvorlige udfald, databasetable-korruption eller overbelastning på selve databaseserveren også manifestere sig udadtil som en generisk 500-fejl. Dobbelttjek derfor, at alle database-oplysningerne (brugernavn, password og database-host) i wp-config.php stemmer overens med dine kontrolpanel-indstillinger.

Derudover udgør forkerte tilladelser på serverens filsystem (file permissions) et udbredt problem. Hvis stramme tilladelser forhindrer webserveren i at læse vigtige PHP-filer, vil serveren afvise anmodningen. Som en stærk tommelfingerregel og branchestandard bør dine tilladelser (chmod) være konfigureret til:

  • Mapper: 755 (ejeren kan læse/skrive/eksekvere, mens andre kun kan læse/eksekvere)
  • Filer: 644 (ejeren kan læse/skrive, mens andre kun kan læse)

(Gør aldrig filer eller mapper offentligt skrivbare med rettigheden 777. Det udgør en alvorlig og umiddelbar sikkerhedsrisiko, der kan gøre hele dit domæne åbent for angreb og lede til et hacket WordPress site).

6. Undersøg for Malware og Hacking-injektioner

Nogle gange skyldes en uventet 500-fejl ikke en teknisk fejl i et plugin, men derimod ondsindet aktivitet udefra. Hvis en hacker eller en automatiseret bot har kompromitteret dit websted og injiceret ondsindet og skjult kode i filer som .htaccess, index.php eller filer i /wp-includes/, kan denne kode ofte indeholde syntaksfejl. Når PHP forsøger at fortolke hackerens fejlbehæftede scripts, bryder serveren ned med en 500-fejl.

Gennemgå ændringer og sikkerhedslogs, hvis du har den nødvendige erfaring, men undgå at slette filer alene ud fra deres navne. Ved mistanke om et sikkerhedsbrud bør miljøet isoleres og undersøges af en fagperson. Selv efter rensning skal adgangskoder og nøgler roteres, kendte sårbarheder lukkes, og miljøet overvåges for tegn på tilbageværende adgang.

Konklusion

En HTTP 500 Internal Server Error kan føles lammende, idet den oftest resulterer i direkte nedetid og tab af besøgende, men en metodisk og systematisk tilgang er din stærkeste allierede. Start altid din fejlsøgning med at isolere problemet via serverens logfiler – det er her sandheden typisk findes, og det kan spare dig for timevis af frustrerende gætterier.

Husk: Grib ikke direkte ind i kritiske produktionsfiler uden at have oprettet en fuld backup på forhånd. Opstår 500-problemet gentagne gange, selv efter oprydning og optimering, kan det være et stærkt tegn på utilstrækkelige serverressourcer. I så fald bør du overveje behovet for at migrere til et hurtigere, mere fleksibelt og stabilt WordPress webhotel, der er skaleret til at håndtere dit aktuelle trafikniveau og den mængde data, systemet processerer.


Ofte Stillede Spørgsmål (FAQ)

Hvad betyder en 500 Internal Server Error i praksis?

Det er en overordnet HTTP-statuskode på serversiden, der fortæller, at webserveren er stødt på en uventet fejl og af samme årsag ikke kan levere eller behandle den anmodede webside. Fejlen betyder konsekvent, at det tekniske problem ligger på selve webserveren (hos hostingudbyderen eller dybt i hjemmesidens kode) og ikke på brugerens egen computer eller lokalt netværk.

Kan en browserfejl eller gammel cache forårsage en 500-fejl?

Nej, en HTTP 500-fejl bliver altid genereret direkte af webserveren. Dog hænder det, at en webbrowser cacher (gemmer) den forrige 500-fejlside i sin egen hukommelse. Hvis fejlen rent faktisk er blevet løst på serveren, vil en simpel rydning af browserens cache eller test i et “inkognito/privat” vindue afsløre, at websitet i virkeligheden fungerer upåklageligt igen.

Er det farligt for min SEO at have en 500 Internal Server Error?

Gentagne 500-svar kan forhindre søgemaskiner i at crawle og opdatere de berørte URL’er. Kortvarige fejl håndteres normalt anderledes end vedvarende serverproblemer, men længere nedetid kan påvirke indeksering og synlighed. Undersøg derfor fejlen hurtigt, og kontrollér efterfølgende serverlogs og de berørte URL’er i dit søgeværktøj.

Web og drift

W3 Total Cache

Lær, hvordan W3 Total Cache kan optimere hastigheden på din WordPress-hjemmeside. Få den fulde guide til sidecaching, minificering, CDN og forbedret SEO.

Læs mere

Web og drift

Thrive Architect

Thrive Architect er en konverteringsfokuseret page builder til WordPress. Få et dybdegående indblik i funktioner, fordele, ulemper, performance og best practices for installation.

Læs mere

Web og drift

Visual Composer Website Builder

Lær hvordan Visual Composer Website Builder gør det muligt at designe professionelle, lynhurtige og SEO-venlige WordPress-hjemmesider uden at skrive kode.

Læs mere