Kapittel 7 · 7.4
WordPress i Docker
Vil du kjøre WordPress på din VPS i stedet for på et webhotell? Med Docker setter du opp WordPress og en database side om side, og Caddy ordner https.
Tips: På et webhotell tar WebOké seg av serveren, oppdateringene av PHP og sikkerhetskopiene for deg. Velg VPS hvis du virkelig trenger den friheten.
Hver oppskrift bygger videre på arbeidsmappen /srv/diensten med Caddy fra Arbeidsmappen din med compose.yaml, .env og Caddy. Du legger til en tjeneste i compose.yaml, en blokk i Caddyfile, og en A- og AAAA-post for navnet (se En A- og AAAA-post i Mine domener).
1. DNS
La example.com og www.example.com peke til din VPS med en A- og AAAA-post. Kjører nettstedet ditt fortsatt et annet sted, gjør du dette først når det nye nettstedet er klart.
2. Et databasepassord i .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Legg resultatet 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 finner den på navnet wp-db (se Docker og brannmuren: publiser porter på en trygg måte).
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
Åpne https://example.com og gå gjennom installasjonen av WordPress med en gang. WordPress-imaget oppdager selv at det står bak en https-proxy.
Oppdatering
- WordPress, utvidelser og temaer oppdaterer du i WordPress-dashbordet, som vanlig. De ligger i volumet
wordpress. - PHP og webserveren ligger i imaget. Dem oppdaterer du med
docker compose pullogup -d(se Oppdatere containere, rydde opp og begrense logger).
E-post og sikkerhetskopi
WordPress sender e-post (glemt passord, skjemaer). Siden port 25 er stengt, bruker du en SMTP-utvidelse med en e-postkonto på port 587 (se Omvendt DNS og sending av e-post fra VPS-en din). Til sikkerhetskopien trenger du to ting: en dump av databasen og volumet wordpress med opplastingene dine. Se Ta med databaser og Docker-volumer på riktig måte.
Mer om selve WordPress, som utvidelser og sikkerhet, kan du lese i WordPress-kurset.
