Modul 1 · 1.3
Filer, wp-config og databasen
Modul 1: Hvordan WordPress fungerer · Lesetid: 9 minutter
Læringsmål: Etter denne leksjonen kjenner du igjen mappene i WordPress, innstillingene i wp-config.php og de viktigste databasetabellene, og vet du hva du finner hvor.
Nøkkelbegreper: wp-admin, wp-includes, wp-content (themes, plugins, uploads, mu-plugins), wp-config.php (DB_*, table_prefix, nøkler og salts, WP_DEBUG), .htaccess, wp_options (siteurl, home), wp_posts, wp_users
To halvdeler: filer og database
Et WordPress-nettsted består alltid av to deler som hører sammen:
- Filer i webmappen til domenet ditt (i DirectAdmin
domains/example.com/public_html): koden til WordPress, temaene dine, utvidelsene dine og alt du laster opp. - En database: alle tekstene, sidene, menyene, innstillingene, brukerne og kommentarene dine.
Dette skillet er viktig ved sikkerhetskopiering og flytting. En sikkerhetskopi med bare filene mangler alle tekstene dine. En sikkerhetskopi med bare databasen mangler alle bildene dine. Du trenger begge deler (leksjon 8.1).
Mappene
Åpne webmappen din i File Manager eller med et FTP-program, så ser du omtrent dette:
public_html/
├── wp-admin/ kontrollpanelet (core)
├── wp-includes/ resten av WordPress (core)
├── wp-content/ alt som er ditt
│ ├── themes/ temaene
│ ├── plugins/ utvidelsene
│ ├── uploads/ mediene dine, per år og måned: uploads/2026/11/
│ ├── mu-plugins/ «must use»-utvidelser (hvis de finnes)
│ ├── languages/ oversettelser
│ └── upgrade/ midlertidig mappe for oppdateringer
├── .htaccess regler for webserveren
├── index.php startpunktet for hver sideforespørsel
├── wp-config.php innstillingene for denne installasjonen
├── wp-login.php innloggingssiden
├── xmlrpc.php en gammel kobling for apper (leksjon 7.3)
└── ... andre wp-*.php-filer fra coreTommelfingerregelen: wp-admin, wp-includes og de løse wp-*.php-filene tilhører WordPress. Disse blir overskrevet ved hver oppdatering. Legg aldri noe der selv, og endre ingenting.
wp-content er ditt. En oppdatering av WordPress rører ikke denne mappen (bortsett fra standardtemaene og -utvidelsene som følger med). Her ligger temaene, utvidelsene og opplastingene dine. Noen ting å vite:
- uploads vokser raskest. Hvert bilde du laster opp, lagrer WordPress i flere formater (leksjon 4.4). Et nettsted med mange års nyheter kan ha gigabyte med opplastinger.
- mu-plugins (must use) er utvidelser som alltid er aktive, og som du ikke kan slå av i kontrollpanelet. Noen webhotell og utvidelser bruker dem. Også inntrengere gjemmer gjerne noe der (leksjon 7.5). Kjenner du ikke igjen en fil der, finn ut hvor den kommer fra.
- En slettet utvidelse forsvinner fra
plugins. En deaktivert utvidelse blir liggende, med all koden sin (leksjon 5.4).
wp-config.php: innstillingene
wp-config.php er det første WordPress laster. Her ligger opplysningene WordPress bruker for å nå databasen, og noen innstillinger for hele installasjonen. En forkortet versjon:
define( 'DB_NAME', 'gebruiker_wp1' );
define( 'DB_USER', 'gebruiker_wp1' );
define( 'DB_PASSWORD', 'et-langt-tilfeldig-passord' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'AUTH_KEY', 'lang tilfeldig tekst' );
define( 'SECURE_AUTH_KEY', 'lang tilfeldig tekst' );
define( 'LOGGED_IN_KEY', 'lang tilfeldig tekst' );
define( 'NONCE_KEY', 'lang tilfeldig tekst' );
define( 'AUTH_SALT', 'lang tilfeldig tekst' );
define( 'SECURE_AUTH_SALT', 'lang tilfeldig tekst' );
define( 'LOGGED_IN_SALT', 'lang tilfeldig tekst' );
define( 'NONCE_SALT', 'lang tilfeldig tekst' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
/* Dat is alles, stop met bewerken! */
require_once ABSPATH . 'wp-settings.php';Hva det betyr:
- DB_NAME, DB_USER, DB_PASSWORD, DB_HOST: hvilken database, bruker og passord WordPress kobler til, og på hvilken server. Stemmer en av disse ikke, ser du «Error establishing a database connection». Dette skjer ofte etter en flytting eller etter at et databasepassord er endret.
- Nøklene og saltene (de åtte linjene med KEY og SALT): tilfeldige tekster som WordPress bruker til å signere innloggingsinformasjonskapslene med. Den som kjenner dem, kan i teorien lage en gyldig innloggingsinformasjonskapsel. Erstatter du dem, blir alle logget ut. Det er nettopp det du gjør etter et hackerangrep (leksjon 7.5). Nye verdier henter du fra
https://api.wordpress.org/secret-key/1.1/salt/. - $table_prefix: prefikset foran alle tabellnavn, vanligvis
wp_. Slik kan flere installasjoner dele én database. Å velge et annet prefiks er ikke reell sikkerhet, men heller ikke skadelig. - WP_DEBUG: slår på feilmeldinger. På et live nettsted står denne av (
false). Hvordan du trygt ser feil uten å vise dem til besøkende, leser du i leksjon 5.4. - Innstillinger du selv legger til (for eksempel
DISALLOW_FILE_EDITi leksjon 7.4 ellerDISABLE_WP_CRONi leksjon 6.3) hører hjemme over linjen «stopp redigeringen».
wp-config.php inneholder databasepassordet ditt. Del aldri filen, legg aldri en kopi av den i webmappen (som wp-config.php.bak eller wp-config.old: disse kan alle laste ned fordi webserveren ikke kjører dem som PHP), og gi den strenge filrettigheter (leksjon 7.4).
.htaccess
Hos LiteSpeed og Apache ligger det en .htaccess-fil i webmappen med regler for webserveren. Den begynner med et punktum, så den er skjult i mange programmer. WordPress setter inn denne blokken for pene adresser (permalenker):
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressEnkelt sagt: «er det ikke en eksisterende fil (!-f) og ikke en eksisterende mappe (!-d), send det da til index.php.» Det er steg 2 fra leksjon 1.2. Utvidelser (caching, sikkerhet) legger ofte til egne blokker. Sett dine egne regler utenfor blokkene til WordPress og utvidelsene, for disse blokkene blir noen ganger skrevet på nytt. Hos nginx finnes ikke .htaccess; der ordner webhotellet dette i serverkonfigurasjonen.
Databasen: hvilken tabell er til hva
Med phpMyAdmin (i DirectAdmin under Databasebehandling) ser du inn i databasen. En vanlig installasjon har tolv tabeller; utvidelser legger ofte til flere. De viktigste:
| Tabell | Hva som ligger i den |
|---|---|
wp_posts | Innlegg, sider, revisjoner, menyelementer, og ved blokktemaer også maler og mønstre. Også bilder er her et «innlegg» av typen attachment |
wp_postmeta | Ekstra opplysninger til innlegg, som prisen på et produkt eller innstillinger fra en sidebygger |
wp_options | Innstillinger for nettstedet og for utvidelser. Her ligger siteurl og home (leksjon 3.1), navnet på det aktive temaet og listen over aktive utvidelser |
wp_users og wp_usermeta | Brukere, deres (krypterte) passord og rollen deres |
wp_terms, wp_term_taxonomy, wp_term_relationships | Kategorier, emneknagger og hvilke innlegg som hører til hvor |
wp_comments og wp_commentmeta | Kommentarer |
To nyttige fakta. For det første: i wp_options ligger siteurl og home. Er disse feil (for eksempel etter en flytting), sender nettstedet alle til feil adresse, og du kommer ikke lenger inn i kontrollpanelet. Da kan du gjenopprette dem i phpMyAdmin eller med regler i wp-config.php (leksjon 3.1). For det andre: mange innstillinger lagres serialisert, en PHP-form der lengden på hver tekst telles med. Endrer du en slik verdi for hånd, eller kjører du et enkelt «søk og erstatt» på databasen, stemmer ikke lengre lengden, og innstillingen går i stykker (leksjon 3.2).
Å se i phpMyAdmin er trygt. Endringer gjør du bare hvis du vet hva du gjør, og alltid med en sikkerhetskopi.
I praksis: slik ser det ut i et panel
Som eksempel bruker vi DirectAdmin. I cPanel og Plesk heter delene File Manager og phpMyAdmin også slik.
- Åpne File Manager og gå til
domains/example.com/public_html. Slå på visning av skjulte filer for å se.htaccess. - Klikk på
wp-config.phpog velg visning (ikke redigering). FinnDB_NAMEog$table_prefix. - Åpne phpMyAdmin, velg til venstre databasen med det navnet, og se hvilke tabeller som finnes.
- Klikk på tabellen
wp_options(med ditt prefiks) og finn radenesiteurloghome.
Oppsummering
- Et WordPress-nettsted er filer pluss database; en sikkerhetskopi trenger begge deler.
wp-admin,wp-includesog de løse core-filene tilhører WordPress;wp-contenter ditt.- wp-config.php inneholder databaseopplysningene, nøklene og saltene, tabellprefikset og innstillinger som WP_DEBUG. Oppbevar aldri en kopi av den i webmappen.
.htaccesssender alt som ikke er en fil, til index.php; egne regler setter du utenfor blokkene til WordPress.- I
wp_optionsligger siteurl og home; serialiserte data endrer du ikke for hånd.
Quiz
Oppgave
Oppgave D1.3: Utforsk din egen installasjon. Åpne webmappen din i File Manager eller med et FTP-program, og deretter databasen din i phpMyAdmin. Ikke gjør noe annet enn å se. Kryss av for hva du har funnet, og fyll inn: tabellprefikset, antallet tabeller i databasen, verdiene for siteurl og home i wp_options, og mappene i wp-content. Skriv også ned om det ligger filer i wp-content/mu-plugins, og om du vet hvor de kommer fra. Del aldri databasepassordet ditt, heller ikke i dette skjemaet.
Oppgave D1.3: Utforsk din egen installasjon
Denne oppgaven gjør du selv; ingen kontrollerer den. Kryss av det du har gjort, og merk oppgaven som fullført.
Prefikset slutter med en understrek (for eksempel wp_ eller en tilfeldig kode). En vanlig installasjon har 12 tabeller; utvidelser legger til flere. siteurl og home begynner med https://. Del aldri databasepassordet fra wp-config.php, heller ikke her.
Avkrysningene og notatene dine blir kun i denne nettleseren; vi sender dem ikke noe sted. Er du logget inn, lagrer vi kun i Mine kurs at du har gjort oppgaven.
Les mer
Disse artiklene beskriver stegene i panelene til WebOké; i andre paneler fungerer de på lignende måte.
- DirectAdmin-veiledning 11.1: Åpne File Manager: mappene i pakken din
- DirectAdmin-veiledning 11.4: Vise og redigere skjulte filer som .htaccess
- DirectAdmin-veiledning 12.3: phpMyAdmin åpne og bruke
- Hva er brukernavnet / passordet / databasenavnet for MySQL?
- DirectAdmin-veiledning 18.6: Feil ved opprettelse av databasetilkobling
- wp-config.php (developer.wordpress.org, engelsk): https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
