Gå direkte til indholdet

Cookieindstillinger

Vælg for hver type, hvilke cookies du tillader. Du kan altid ændre dit valg via Cookieindstillinger nederst på hver side. Privatlivspolitik

Nødvendige

Altid slået til

Nødvendige for at logge ind, gemme din kurv og huske dine valg. De er altid slået til.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session og at forblive logget ind
  • weboke_basket: din kurv
  • wkBtwIncl: vise priser med eller uden moms
  • wok_cookies: dit cookievalg, 12 måneder

Måler, hvilken annonce der fører til et besøg eller en bestilling, så vi ikke betaler for annoncer, der ikke virker.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), op til 90 dage
  • OpenAI Ads, annoncer i ChatGPT
  • wok_aff: hvilken partner der henviste dig til os (affiliateprogram), 60 dage

4,6

Land og sprog

Hvert land har sin egen side med landets priser og moms.

Se

Filer, wp-config og databasen

Modul 1: Sådan virker WordPress · Læsetid: 9 minutter

Læringsmål: Efter denne lektion kan du kende WordPress' mapper, indstillingerne i wp-config.php og de vigtigste databasetabeller, og du ved hvad du finder hvor.

Nøglebegreber: wp-admin, wp-includes, wp-content (themes, plugins, uploads, mu-plugins), wp-config.php (DB_*, table_prefix, nøgler og salts, WP_DEBUG), .htaccess, wp_options (siteurl, home), wp_posts, wp_users

To halvdele: filer og database

Et WordPress-websted består altid af to dele der hører sammen:

  1. Filer i webmappen for dit domæne (i DirectAdmin domains/example.com/public_html): koden til WordPress, dine temaer, dine plugins og alt det du uploader.
  2. En database: alle dine tekster, sider, menuer, indstillinger, brugere og kommentarer.

Denne skelnen er vigtig ved backup og flytning. En backup med kun filerne mangler alle dine tekster. En backup med kun databasen mangler alle dine billeder. Du skal bruge begge dele (lektion 8.1).

Mapperne

Åbn din webmappe i Filhåndtering eller med et FTP-program, så ser du nogenlunde dette:

public_html/
├── wp-admin/          kontrolpanelet (core)
├── wp-includes/       resten af WordPress (core)
├── wp-content/        alt det der er dit
│   ├── themes/        temaerne
│   ├── plugins/       plugins
│   ├── uploads/       dine medier, pr. år og måned: uploads/2026/11/
│   ├── mu-plugins/    "must use"-plugins (hvis de findes)
│   ├── languages/     oversættelser
│   └── upgrade/       midlertidig mappe til opdateringer
├── .htaccess          regler til webserveren
├── index.php          startpunktet for hver sideanmodning
├── wp-config.php      indstillingerne for denne installation
├── wp-login.php       login-siden
├── xmlrpc.php         en gammel kobling til apps (lektion 7.3)
└── ...                andre wp-*.php-filer fra core

Tommelfingerreglen: wp-admin, wp-includes og de løse wp-*.php-filer tilhører WordPress. De bliver overskrevet ved hver opdatering. Læg aldrig selv noget derind, og lav ingen ændringer der.

wp-content er dit. En opdatering af WordPress lader den mappe være i fred (bortset fra standardtemaer og -plugins der følger med). Her ligger dine temaer, plugins og uploads. Nogle ting er værd at vide:

  • uploads vokser hurtigst. Hvert billede du uploader, gemmer WordPress i flere formater (lektion 4.4). Et websted med nyheder i flere år kan have gigabytes af uploads.
  • mu-plugins (must use) er plugins der altid er aktive, og som du ikke kan slå fra i kontrolpanelet. Nogle hostingudbydere og plugins bruger dem. Også indbrudstyve gemmer gerne noget der (lektion 7.5). Kender du ikke en fil der, så find ud af hvor den kommer fra.
  • En slettet plugin forsvinder fra plugins. En deaktiveret plugin bliver liggende, med al sin kode (lektion 5.4).

wp-config.php: indstillingerne

wp-config.php er det første WordPress indlæser. Her står oplysningerne som WordPress bruger til at få adgang til databasen, og nogle indstillinger for hele installationen. En forkortet version:

define( 'DB_NAME', 'gebruiker_wp1' );
define( 'DB_USER', 'gebruiker_wp1' );
define( 'DB_PASSWORD', 'en-lang-tilfaeldig-adgangskode' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );

define( 'AUTH_KEY',         'lang tilfældig tekst' );
define( 'SECURE_AUTH_KEY',  'lang tilfældig tekst' );
define( 'LOGGED_IN_KEY',    'lang tilfældig tekst' );
define( 'NONCE_KEY',        'lang tilfældig tekst' );
define( 'AUTH_SALT',        'lang tilfældig tekst' );
define( 'SECURE_AUTH_SALT', 'lang tilfældig tekst' );
define( 'LOGGED_IN_SALT',   'lang tilfældig tekst' );
define( 'NONCE_SALT',       'lang tilfældig tekst' );

$table_prefix = 'wp_';

define( 'WP_DEBUG', false );

/* Dat is alles, stop met bewerken! */
require_once ABSPATH . 'wp-settings.php';

Hvad det betyder:

  • DB_NAME, DB_USER, DB_PASSWORD, DB_HOST: med hvilken database, bruger og adgangskode WordPress forbinder, og på hvilken server. Stemmer en af dem ikke, ser du "Error establishing a database connection". Det sker ofte efter en flytning eller efter ændring af en databaseadgangskode.
  • Nøglerne og salts (de otte linjer med KEY og SALT): tilfældige tekster som WordPress bruger til at underskrive login-cookies med. Den der kender dem, kan i teorien lave en gyldig login-cookie. Udskifter du dem, bliver alle logget ud. Det er præcis det du gør efter et hack (lektion 7.5). Nye værdier henter du på https://api.wordpress.org/secret-key/1.1/salt/.
  • $table_prefix: præfikset på alle tabelnavne, som regel wp_. Sådan kan flere installationer dele én database. At vælge et andet præfiks er ikke rigtig sikkerhed, men det skader heller ikke.
  • WP_DEBUG: slår fejlmeddelelser til. På et website i produktion er dette slået fra (false). Hvordan du ser fejl på en sikker måde uden at vise dem til besøgende, kan du læse i lektion 5.4.
  • Indstillinger du selv tilføjer (for eksempel DISALLOW_FILE_EDIT i lektion 7.4 eller DISABLE_WP_CRON i lektion 6.3) hører til over linjen "stop met bewerken" (stop med at redigere).

wp-config.php indeholder din databaseadgangskode. Del aldrig filen, læg ikke en kopi af den i webmappen (som wp-config.php.bak eller wp-config.old: den kan alle hente, fordi webserveren ikke udfører den som PHP), og giv den strenge filrettigheder (lektion 7.4).

.htaccess

Med LiteSpeed og Apache ligger der en .htaccess-fil i webmappen med regler til webserveren. Den starter med et punktum, så den er skjult i mange programmer. WordPress sætter denne blok ind for pæne adresser (permalinks):

# 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 WordPress

Sagt enkelt: "er det ikke en eksisterende fil (!-f) og ikke en eksisterende mappe (!-d), så send det til index.php." Det er trin 2 fra lektion 1.2. Plugins (caching, sikkerhed) tilføjer ofte egne blokke. Sæt dine egne regler uden for blokkene fra WordPress og plugins, for de blokke bliver nogle gange skrevet om. Hos nginx findes .htaccess ikke; der ordner hostingudbyderen dette i serverkonfigurationen.

Databasen: hvilken tabel til hvad

Med phpMyAdmin (i DirectAdmin under Databasehåndtering) kan du se databasen. En almindelig installation har tolv tabeller; plugins tilføjer ofte flere. De vigtigste:

TabelHvad der står i den
wp_postsIndlæg, sider, revisioner, menupunkter, og ved bloktemaer også skabeloner og mønstre. Også billeder er her et "indlæg" af typen attachment
wp_postmetaEkstra oplysninger til indlæg, som prisen på et produkt eller indstillinger fra en sidebygger
wp_optionsIndstillinger for webstedet og for plugins. Her står siteurl og home (lektion 3.1), navnet på det aktive tema og listen over aktive plugins
wp_users og wp_usermetaBrugere, deres (krypterede) adgangskoder og deres rolle
wp_terms, wp_term_taxonomy, wp_term_relationshipsKategorier, tags og hvilke indlæg der hører til dem
wp_comments og wp_commentmetaKommentarer

To nyttige ting at vide. For det første: i wp_options står siteurl og home. Hvis de er forkerte (for eksempel efter en flytning), sender dit websted alle hen til den forkerte adresse, og du kan ikke længere komme ind i administrationen. Så kan du rette dem i phpMyAdmin eller med regler i wp-config.php (lektion 3.1). For det andet: mange indstillinger gemmes serialiseret, en PHP-form hvor længden af hver tekst tælles med. Retter du sådan en værdi i hånden, eller kører du en simpel "søg og erstat" på databasen, så stemmer længden ikke længere, og indstillingen går i stykker (lektion 3.2).

At kigge i phpMyAdmin er sikkert. Ændringer skal du kun lave hvis du ved hvad du gør, og altid med en backup.

I praksis: sådan ser det ud i et panel

Som eksempel bruger vi DirectAdmin. I cPanel og Plesk hedder delene Filhåndtering (File Manager) og phpMyAdmin også sådan.

  1. Åbn Filhåndtering og gå til domains/example.com/public_html. Slå visning af skjulte filer til for at se .htaccess.
  2. Klik på wp-config.php, og vælg at se den (ikke redigere). Find DB_NAME og $table_prefix.
  3. Åbn phpMyAdmin, vælg til venstre databasen med det navn, og se hvilke tabeller der findes.
  4. Klik på tabellen wp_options (med dit præfiks), og find rækkerne siteurl og home.

Opsummering

  • Et WordPress-websted er filer plus database; en backup kræver begge dele.
  • wp-admin, wp-includes og de løse core-filer tilhører WordPress; wp-content er dit.
  • wp-config.php indeholder databaseoplysningerne, nøglerne og salts, tabelpræfikset og indstillinger som WP_DEBUG. Opbevar aldrig en kopi af den i webmappen.
  • .htaccess sender alt der ikke er en fil, til index.php; egne regler sætter du uden for blokkene fra WordPress.
  • I wp_options står siteurl og home; serialiserede data retter du ikke i hånden.

Quiz

1. Du vil lave en tilpasning der overlever en opdatering af WordPress. Hvor hører den til?



2. Efter en flytning ser du "Error establishing a database connection". Hvor kigger du først?



3. Hvad sker der hvis du udskifter nøglerne og salts i wp-config.php?



4. Hvorfor er en fil wp-config.php.bak i webmappen farlig?



5. I hvilken tabel finder du listen over aktive plugins?



Opgave

Opgave D1.3: Udforsk din egen installation. Åbn din webmappe i Filhåndtering eller med et FTP-program, og derefter din database i phpMyAdmin. Lav ikke andet end at kigge. Noter hvad du har fundet, og udfyld: tabelpræfikset, antallet af tabeller i databasen, værdierne af siteurl og home i wp_options, og mapperne i wp-content. Skriv også ned om der ligger filer i wp-content/mu-plugins, og om du ved hvor de kommer fra. Del aldrig din databaseadgangskode, heller ikke i denne formular.

Opgave D1.3: Udforsk din egen installation

Denne opgave laver du selv; ingen tjekker den. Afkryds hvad du har gjort, og markér opgaven som udført.






Dine afkrydsninger og noter forbliver kun i denne browser; vi sender dem ingen steder hen. Er du logget ind, gemmer vi kun i Mine kurser, at du har udført opgaven.

Læs mere

Disse artikler beskriver trinnene i WebOkés paneler; i andre paneler fungerer det på lignende måde.

Et øjeblik…

Opsæt dine domæner

Angiv for hvert domæne navneserverne, tilknytningen til din hosting, og hvem der bliver ejer.

Indlæser dine domæner…