Modul 1 · 1.3
Filer, wp-config och databasen
Modul 1: Hur WordPress fungerar · Lästid: 9 minuter
Lärandemål: Efter den här lektionen känner du igen WordPress mappar, inställningarna i wp-config.php och de viktigaste databastabellerna, och du vet vad du hittar var.
Nyckelbegrepp: wp-admin, wp-includes, wp-content (themes, plugins, uploads, mu-plugins), wp-config.php (DB_*, table_prefix, nycklar och salts, WP_DEBUG), .htaccess, wp_options (siteurl, home), wp_posts, wp_users
Två halvor: filer och databas
En WordPress-webbplats består alltid av två delar som hör ihop:
- Filer i webbmappen för din domän (hos DirectAdmin
domains/example.com/public_html): koden för WordPress, dina teman, dina tillägg och allt du laddar upp. - En databas: alla dina texter, sidor, menyer, inställningar, användare och kommentarer.
Den här uppdelningen är viktig vid säkerhetskopior och flyttar. En säkerhetskopia med bara filerna saknar alla dina texter. En säkerhetskopia med bara databasen saknar alla dina foton. Du behöver båda (lektion 8.1).
Mapparna
Öppna din webbmapp i Filhanterare eller med ett FTP-program, så ser du ungefär det här:
public_html/
├── wp-admin/ Adminpanelen (core)
├── wp-includes/ resten av WordPress (core)
├── wp-content/ allt som är ditt
│ ├── themes/ temana
│ ├── plugins/ tilläggen
│ ├── uploads/ din media, per år och månad: uploads/2026/11/
│ ├── mu-plugins/ "must use"-tillägg (om sådana finns)
│ ├── languages/ översättningar
│ └── upgrade/ tillfällig mapp för uppdateringar
├── .htaccess regler för webbservern
├── index.php startpunkten för varje sidförfrågan
├── wp-config.php inställningarna för den här installationen
├── wp-login.php inloggningssidan
├── xmlrpc.php en gammal koppling för appar (lektion 7.3)
└── ... andra wp-*.php-filer från coreTumregeln: wp-admin, wp-includes och de fristående wp-*.php-filerna tillhör WordPress. De skrivs över vid varje uppdatering. Lägg aldrig till något där själv och ändra inget i dem.
wp-content är ditt. En uppdatering av WordPress rör inte den mappen (förutom standardteman och -tillägg som följer med). Här finns dina teman, tillägg och uppladdningar. Några saker att veta:
- uploads växer snabbast. Varje bild du laddar upp sparar WordPress i flera format (lektion 4.4). En webbplats med flera års nyheter kan ha flera gigabyte med uppladdningar.
- mu-plugins (must use) är tillägg som alltid är aktiva och som du inte kan stänga av i adminpanelen. Vissa webbhotell och tillägg använder dem. Även inbrottstjuvar gömmer gärna något där (lektion 7.5). Känner du inte igen en fil där, ta reda på varifrån den kommer.
- Ett borttaget tillägg försvinner från
plugins. Ett inaktiverat tillägg finns kvar, med all sin kod (lektion 5.4).
wp-config.php: inställningarna
wp-config.php är det första WordPress laddar. Där finns uppgifterna som WordPress använder för att nå databasen, och några inställningar för hela installationen. En förkortad version:
define( 'DB_NAME', 'gebruiker_wp1' );
define( 'DB_USER', 'gebruiker_wp1' );
define( 'DB_PASSWORD', 'ett-langt-slumpmassigt-losenord' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'AUTH_KEY', 'lång slumpmässig text' );
define( 'SECURE_AUTH_KEY', 'lång slumpmässig text' );
define( 'LOGGED_IN_KEY', 'lång slumpmässig text' );
define( 'NONCE_KEY', 'lång slumpmässig text' );
define( 'AUTH_SALT', 'lång slumpmässig text' );
define( 'SECURE_AUTH_SALT', 'lång slumpmässig text' );
define( 'LOGGED_IN_SALT', 'lång slumpmässig text' );
define( 'NONCE_SALT', 'lång slumpmässig text' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
/* Dat is alles, stop met bewerken! */
require_once ABSPATH . 'wp-settings.php';Vad det betyder:
- DB_NAME, DB_USER, DB_PASSWORD, DB_HOST: med vilken databas, användare och lösenord WordPress ansluter, och på vilken server. Stämmer en av dem inte, ser du "Error establishing a database connection". Det händer ofta efter en flytt eller efter att ett databaslösenord ändrats.
- Nycklarna och salts (de åtta raderna med KEY och SALT): slumpmässiga texter som WordPress använder för att signera inloggningscookies. Den som känner till dem kan i teorin skapa en giltig inloggningscookie. Byter du ut dem loggas alla ut. Det är precis vad du gör efter en hackning (lektion 7.5). Nya värden hämtar du från
https://api.wordpress.org/secret-key/1.1/salt/. - $table_prefix: prefixet för alla tabellnamn, oftast
wp_. På så sätt kan flera installationer dela en databas. Att välja ett annat prefix är ingen riktig säkerhetsåtgärd, men inte heller skadligt. - WP_DEBUG: slår på felmeddelanden. På en livewebbplats är detta avstängt (
false). Hur du säkert granskar fel utan att visa dem för besökare läser du om i lektion 5.4. - Inställningar du själv lägger till (till exempel
DISALLOW_FILE_EDITi lektion 7.4 ellerDISABLE_WP_CRONi lektion 6.3) hör hemma ovanför raden "stop met bewerken".
wp-config.php innehåller ditt databaslösenord. Dela aldrig filen, lägg aldrig en kopia av den i webbmappen (som wp-config.php.bak eller wp-config.old: den kan vem som helst ladda ner eftersom webbservern inte kör dem som PHP) och ge den strikta filrättigheter (lektion 7.4).
.htaccess
Hos LiteSpeed och Apache finns en .htaccess-fil i webbmappen med regler för webbservern. Den börjar med en punkt, så den är dold i många program. WordPress lägger in det här blocket för rena adresser (permalänkar):
# 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 uttryckt: "är det inte en befintlig fil (!-f) och inte en befintlig mapp (!-d), skicka det då till index.php." Det är steg 2 från lektion 1.2. Tillägg (cache, säkerhet) lägger ofta till egna block. Lägg dina egna regler utanför blocken från WordPress och tillägg, eftersom de blocken ibland skrivs om. Hos nginx finns ingen .htaccess; där sköter webbhotellet det i serverkonfigurationen.
Databasen: vilken tabell för vad
Med phpMyAdmin (i DirectAdmin under Databashantering) tittar du i databasen. En vanlig installation har tolv tabeller; tillägg lägger ofta till fler. De viktigaste:
| Tabell | Vad som finns i den |
|---|---|
wp_posts | Inlägg, sidor, revisioner, menyposter, och i blockteman även mallar och mönster. Även bilder är här ett "inlägg" av typen attachment |
wp_postmeta | Extra data kopplat till inlägg, som priset på en produkt eller inställningar från en sidbyggare |
wp_options | Inställningar för webbplatsen och för tillägg. Här finns siteurl och home (lektion 3.1), namnet på det aktiva temat och listan över aktiva tillägg |
wp_users och wp_usermeta | Användare, deras (krypterade) lösenord och deras roll |
wp_terms, wp_term_taxonomy, wp_term_relationships | Kategorier, taggar och vilka inlägg som hör till dem |
wp_comments och wp_commentmeta | Kommentarer |
Två användbara fakta. För det första: i wp_options finns siteurl och home. Om de är fel (till exempel efter en flytt) skickar din webbplats alla till fel adress och du kommer inte längre in i administrationen. Då kan du återställa dem i phpMyAdmin eller med rader i wp-config.php (lektion 3.1). För det andra: många inställningar sparas serialiserade, ett PHP-format där längden på varje text räknas med. Ändrar du ett sådant värde för hand, eller kör du en enkel "sök och ersätt" på databasen, stämmer inte längden längre och inställningen går sönder (lektion 3.2).
Att titta i phpMyAdmin är säkert. Ändringar gör du bara om du vet vad du gör, och alltid med en säkerhetskopia.
I praktiken: så ser det ut i en panel
Som exempel använder vi DirectAdmin. I cPanel och Plesk heter delarna Filhanterare (File Manager) och phpMyAdmin likadant.
- Öppna Filhanterare och gå till
domains/example.com/public_html. Slå på visning av dolda filer för att se.htaccess. - Klicka på
wp-config.phpoch välj visa (inte redigera). Leta reda påDB_NAMEoch$table_prefix. - Öppna phpMyAdmin, välj databasen med det namnet till vänster och se vilka tabeller som finns.
- Klicka på tabellen
wp_options(med ditt prefix) och leta reda på radernasiteurlochhome.
Sammanfattning
- En WordPress-webbplats är filer plus databas; en säkerhetskopia behöver båda.
wp-admin,wp-includesoch de fristående core-filerna tillhör WordPress;wp-contentär ditt.- wp-config.php innehåller databasuppgifterna, nycklarna och salts, tabellprefixet och inställningar som WP_DEBUG. Spara aldrig en kopia av den i webbmappen.
.htaccessskickar allt som inte är en fil till index.php; egna regler lägger du utanför blocken från WordPress.- I
wp_optionsfinns siteurl och home; serialiserad data ändrar du inte för hand.
Quiz
Uppgift
Uppgift D1.3: Utforska din egen installation. Öppna din webbmapp i Filhanterare eller med ett FTP-program och sedan din databas i phpMyAdmin. Gör inget annat än att titta. Bocka av vad du har hittat och fyll i: tabellprefixet, antalet tabeller i databasen, värdena för siteurl och home i wp_options, och mapparna i wp-content. Skriv också ner om det finns filer i wp-content/mu-plugins och om du vet varifrån de kommer. Dela aldrig ditt databaslösenord, inte heller i det här formuläret.
Uppgift D1.3: Utforska din egen installation
Den här uppgiften gör du själv; ingen kontrollerar den. Bocka av vad du har gjort och markera uppgiften som klar.
Prefixet slutar med ett understreck (till exempel wp_ eller en slumpmässig kod). En vanlig installation har 12 tabeller, tillägg lägger till fler. siteurl och home börjar med https://. Dela aldrig databaslösenordet från wp-config.php, inte heller här.
Dina bockar och anteckningar sparas bara i den här webbläsaren; vi skickar dem ingenstans. Är du inloggad sparar vi i Mina kurser bara att du har gjort uppgiften.
Läs mer
De här artiklarna beskriver stegen i panelerna från WebOké; i andra paneler fungerar det på liknande sätt.
- DirectAdmin-guide 11.1: Öppna Filhanteraren: mapparna i ditt paket
- DirectAdmin-guide 11.4: Visa och redigera dolda filer som .htaccess
- DirectAdmin-guide 12.3: Öppna och använda phpMyAdmin
- Vad är användarnamnet / lösenordet / databasnamnet för MySQL?
- DirectAdmin-guide 18.6: Error establishing a database connection
- wp-config.php (developer.wordpress.org, Engelska): https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
