Kapitel 7 · 7.4
WordPress i Docker
Vil du køre WordPress på din VPS i stedet for på et webhotel? Med Docker sætter du WordPress og en database op side om side, og Caddy klarer https.
Tip: På et webhotel sørger WebOké for serveren, opdateringerne af PHP og backuppen for dig. Vælg en VPS, hvis du virkelig har brug for den frihed.
Hver opskrift bygger videre på arbejdsmappen /srv/diensten med Caddy fra Din arbejdsmappe med compose.yaml, .env og Caddy. Du tilføjer en service til compose.yaml, en blok til Caddyfile og en A- og AAAA-record for navnet (se En A- og AAAA-post i Mine domæner).
1. DNS
Lad example.com og www.example.com pege på din VPS med en A- og AAAA-record. Kører dit website stadig et andet sted, så gør det først, når det nye website er klar.
2. En databaseadgangskode i .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Sæt resultatet ind i .env som WP_DB_WACHTWOORD=....
3. compose.yaml
wordpress:
image: wordpress
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: wp-db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: ${WP_DB_WACHTWOORD}
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
depends_on:
- wp-db
wp-db:
image: mariadb:11.8
restart: unless-stopped
environment:
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: ${WP_DB_WACHTWOORD}
MARIADB_RANDOM_ROOT_PASSWORD: "1"
volumes:
- wp-db:/var/lib/mysql
Og under volumes::
wordpress:
wp-db:
Databasen får ingen ports:: WordPress finder den på navnet wp-db (se Docker og firewallen: udgiv porte sikkert).
4. Caddyfile
example.com, www.example.com {
reverse_proxy wordpress:80
}
anna@web1:/srv/diensten$ sudo docker compose up -d
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Åbn https://example.com, og gennemfør installationen af WordPress med det samme. WordPress-imaget kan selv se, at det står bag en https-proxy.
Opdatering
- WordPress, plugins og temaer opdaterer du i WordPress' kontrolpanel som altid. De ligger i volumen
wordpress. - PHP og webserveren ligger i imaget. Dem opdaterer du med
docker compose pullogup -d(se Opdater containere, ryd op og begræns logs).
Mail og backup
WordPress sender mail (glemt adgangskode, formularer). Da port 25 er lukket, bruger du et SMTP-plugin med en mailboks på port 587 (se Reverse DNS og afsendelse af mail fra din VPS). Til din backup skal du bruge to ting: et dump af databasen og volumen wordpress med dine uploads. Se Sådan tager du databaser og Docker-volumes korrekt med i backuppen.
Mere om selve WordPress, f.eks. plugins og sikkerhed, kan du læse i WordPress-kurset.
