Spørsmål og svar

Tilbake
Hvordan kan jeg se PHP-feil/debugge PHP-kode?

Dette punktet i våre spørsmål og svar er beregnet på avanserte brukere, teknikere og programmerere.

Vi gjør oppmerksom på at vi dessverre ikke kan gi kundestøtte til slik programmering.

PHP har en del innebygde mekanismer som gjør det mulig å debugge feil, her er noen tips for å komme igang.


Direkte visning av feil

Hvis du skrur på display_errors og display_startup_errors, så vil feil vises direkte i nettleser, hvis mulig.

Opprett en fil med navnet .user.ini i rotmappen for ditt webhotell (som regel www-mappen), med følgende innhold:

display_errors = On
display_startup_errors = On

Det kan ta inntil 10 minutter før endringene du gjør her trer i kraft.

Eventuelle feilmeldinger fra PHP vil da vises direkte i nettleseren ved besøk på websidene. Feilmeldingen kan ofte brukes til å identifisere hvor problemet ligger, f.eks. en Wordpress-plugin eller lignende.

OBS: Husk å slette filen .user.ini etterpå, eller deaktiver display_errors. Dette er funksjonalitet som bare må brukes for testing og feilsøking, da det kan avsløre hemmeligheter om din nettside, som f.eks. passord brukt til databasen.


Logging til fil

Du har ikke tilgang til webserverens egen feillogg, men kan konfigurere PHP til å logge sine feil for deg. Se også vår oversikt over vanlige feilsituasjoner, den kan spare deg for en del arbeid.

Detaljert informasjon om feillogging i PHP finner du i PHPs brukerdokumentasjon for feilfunksjoner.

Vi tillater også kunder å gjøre noen konfigurasjonsendringer via .user.ini, error-logging skal være blant det som går an å stille inn der, f.eks. slik (husk å bytte ut /home/1/m/mittnavn med ditt hjemmeområdes navn):

error_log = /home/1/m/mittnavn/php-error.log

Ditt hjemmeområdes navn finner du i kontrollpanelet for det aktuelle domenet under fanen WebhotellWebhotell tilgjengelig via

Logging av denne typen kan gjøre PHP litt tregere, og vær obs på at det kan fylle opp plassen på webhotellet om du ikke skrur den av eller fjerner filen regelmessig.

PHP har også funksjonalitet for å logge feil direkte til feillogg fra forskjellige steder i koden.

Vi anbefaler her å logge til en spesifikk fil for å unngå forvirring med error-loggingen konfigurert i .user.ini.


WordPress-spesifikk debugging

I WordPress er det også mulig å skru på egen debugging i wp-config.php:

/**
 * For utviklere: WordPress-feilsøkingstilstand.
 *
 * Sett denne til "true" for å aktivere visning av meldinger under utvikling.
 * Det er sterkt anbefalt at innstikks- og tema-utviklere bruker WP_DEBUG
 * i deres utviklermiljøer.
 */
define('WP_DEBUG', false);

Endre false til true for å få vist feilmeldinger.


Testing på vår login-server

Som kunde med Webhotell Medium eller større har du også tilgang til Unix shell på vår login-server. Der kan du test-kjøre dine PHP-programmer fra kommandolinjen, og se hva de gjør. Vær varsom så du ikke bruker for mye ressurser, login-serveren brukes av mange andre.


Testing med egen php.ini

For å teste egen php.ini på kommandolinjen, må du fortelle PHP at den skal bruke denne. Eksempelet nedenfor antar at du har bash som shell og at php.ini ligger i ditt hjemmeområdes hovedmappe.

export PHPRC=$HOME/

Denne kommandoen må kjøres før du kjører php-programmet, men trenger kun kjøres i starten av hver innlogging. Du kan også legge den inn i din .bashrc for å slippe å huske på den.


Testing på egen/ekstern webserver

Hvis du ønsker å teste PHP på egen server eller server hos en annen leverandør enn oss, så må den være konfigurert nokså likt. Vi vil gjøre spesielt oppmerksom på følgende elementer som kan utgjøre forskjeller fra andres oppsett:

PHP 5.6

  • Operativsystem: Debian Jessie, 64-bit x86
  • Webserver: Apache 2.4
  • Moduler: ModSecurity, mod_evasive, mod_access_compat
  • PHP 5.6 vassal under uWSGI emperor
  • Vår php.ini, men se også phpinfo() for detaljer.

PHP 7.0

  • Operativsystem: Debian Stretch, 64-bit x86
  • Webserver: Apache 2.4
  • Moduler: ModSecurity, mod_evasive, mod_access_compat
  • PHP 7.0 vassal under uWSGI emperor
  • Vår php.ini, men se også phpinfo() for detaljer.

Det kan også være andre forskjeller, vi kjenner ikke til alle andres konfigurasjoner. Vi kan ikke hjelpe til med å sette opp egen webserver eller til å konfigurere andres webservere.


Se også:

Stikkord:  

Innholdsfortegnelse

© 2018 Domeneshop AS · Om oss · Vilkår · Personvern