Kapitel 7 · 7.4
WordPress i Docker
Vill du köra WordPress på din VPS i stället för på ett webbhotellspaket? Med Docker kör du WordPress och en databas sida vid sida, och Caddy sköter https.
Tips: På ett webbhotellspaket sköter WebOké servern, PHP-uppdateringarna och säkerhetskopiorna åt dig. Välj VPS om du verkligen behöver den friheten.
Varje recept bygger vidare på arbetsmappen /srv/diensten med Caddy från Din arbetsmapp med compose.yaml, .env och Caddy. Du lägger till en tjänst i compose.yaml, ett block i Caddyfile och en A- och AAAA-post för namnet (se En A- och AAAA-post i Mina domäner).
1. DNS
Låt example.com och www.example.com peka på din VPS med en A- och AAAA-post. Ligger din webbplats fortfarande någon annanstans, gör detta först när den nya webbplatsen är klar.
2. Ett databaslösenord i .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Lägg in 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
Och under volumes::
wordpress:
wp-db:
Databasen får ingen ports:: WordPress hittar den via namnet wp-db (se Docker och brandväggen: publicera portar säkert).
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
Öppna https://example.com och gå igenom installationen av WordPress direkt. WordPress-imagen känner av att den ligger bakom en https-proxy.
Uppdatera
- WordPress, tillägg och teman uppdaterar du i WordPress-panelen, precis som vanligt. De ligger i volymen
wordpress. - PHP och webbservern finns i imagen. Dem uppdaterar du med
docker compose pullochup -d(se Uppdatera containrar, städa upp och begränsa loggar).
E-post och säkerhetskopia
WordPress skickar e-post (glömt lösenord, formulär). Eftersom port 25 är stängd använder du ett SMTP-tillägg med en e-postlåda på port 587 (se Omvänd DNS och att skicka e-post från din VPS). För din säkerhetskopia behöver du två saker: en dump av databasen och volymen wordpress med dina uppladdningar. Se Säkerhetskopiera databaser och Docker-volymer på rätt sätt.
Mer om själva WordPress, som tillägg och säkerhet, läser du i WordPress-kursen.
