Kapitel 14 · 14.6
Fejl efter en PHP-opgradering og hvordan du finder fejlloggen
Du har opgraderet PHP-versionen, og nu er din website hvid, viser en fejlmeddelelse, eller en del af den virker ikke længere. Det skyldes næsten altid et plugin, et tema eller egen kode, der ikke er kompatibel med den nye version. Bare rolig, du sætter den gamle version tilbage på et minut, og derefter finder du roligt ud af, hvad der er galt.
Trin 1: sæt den gamle version tilbage
Gå til Select PHP version, vælg igen den version, du havde før, og klik på Apply (se Sådan vælger du PHP-version (Select PHP version)). Din website virker så med det samme igen som før. Har du ændret udvidelser eller indstillinger ved den nye version, bliver de gemt til et senere forsøg.
Trin 2: find fejlmeddelelsen i fejlloggen
PHP skriver fejl i fejlloggen for dit domæne. Der kan du se nøjagtigt, hvilken fil og hvilken linje der giver problemet.
- Klik i DirectAdmin under Systeminfo og filer på Oversigt og logs for websted.
- Klik ved dit domæne på Fejllog.
- Se på de sidste linjer, nederst. Kig efter linjer med PHP Fatal error, PHP Parse error eller PHP Warning (1).

Du kan læse mere om logfilerne i Oversigt og logs for websted: fejlloggen og adgangsloggen.
Trin 3: forstå meddelelsen
I meddelelsen står filens sti. Den viser som regel, hvilket plugin eller tema der er synderen. Et par eksempler:
| Du ser i meddelelsen | Betydning |
|---|---|
| .../wp-content/plugins/plugin-navn/... | Det plugin virker ikke med den nye version. Opdater det, eller find en erstatning, hvis det ikke længere vedligeholdes. |
| .../wp-content/themes/tema-navn/... | Dit tema er for gammelt. Opdater det, eller bed udvikleren om en opdatering. |
| Call to undefined function mysql_connect() | Meget gammel kode, der stadig bruger funktioner fra før PHP 7. Den skal omskrives. |
| Call to undefined function med et andet funktionsnavn | Ofte mangler en udvidelse. Find ud af, hvilken udvidelse den funktion hører til, og aktiver den (se PHP-udvidelser slås til og fra). |
| Allowed memory size of ... bytes exhausted | Scriptet har for lidt hukommelse. Forøg memory_limit (se PHP-indstillinger: upload_max_filesize, memory_limit og max_execution_time). |
| Maximum execution time of ... seconds exceeded | Scriptet tog for lang tid. Forøg max_execution_time, eller find ud af, hvorfor det er så langsomt. |
Trin 4: opdater og prøv igen
- Lav en sikkerhedskopi (se Sikkerhedskopiering og gendannelse: opret selv en sikkerhedskopi i DirectAdmin).
- Opdater WordPress (eller din anden software), dit tema og alle dine plugins, mens den gamle PHP-version stadig er aktiv.
- Fjern plugins, du ikke bruger.
- Aktiver den nye PHP-version igen, og test din website igen. Kig også i fejlloggen igen.
Tip: Vil du teste først, uden at besøgende mærker noget til det? Lav med Installatron en kopi af dit website på et underdomæne (se Klon og opret et testmiljø (staging)), og sæt kun den mappe på den nye version med .htaccess (se PHP-indstillinger pr. mappe og via .htaccess).
Vis fejl midlertidigt på siden
Ser du kun en hvid skærm, og står der ikke noget brugbart i fejlloggen? Så kan du midlertidigt vise fejl direkte på siden. Slå i Select PHP version på fanen Options afkrydsningsfeltet ved display_errors til. Åbn siden igen, nu ser du fejlmeddelelsen. Slå display_errors fra igen med det samme bagefter, for sådan en meddelelse kan vise oplysninger om din website til alle.
Bruger du WordPress, kan det også gøres med disse linjer i wp-config.php, over linjen That's all, stop editing!: define('WP_DEBUG', true); og define('WP_DEBUG_LOG', true);. WordPress skriver så fejlene i wp-content/debug.log. Fjern dem igen bagefter, eller sæt dem til false.
Vil du hellere have det løst?
Lykkes det ikke, eller har din website ikke været opdateret i årevis? Med PHP-opgraderingen gør vi din website klar til en aktuel PHP-version, til en fast pris. Lykkes det ikke, får du pengene tilbage.
