Kapitola 7 · 7.4
WordPress v Dockeru
Chcete na svém VPS provozovat WordPress místo hostingového balíčku? Pomocí Dockeru spustíte WordPress a databázi vedle sebe a o https se postará Caddy.
Tip: U hostingového balíčku za Vás WebOké spravuje server, aktualizace PHP i zálohy. VPS zvolte, pokud tuto volnost opravdu potřebujete.
Každý návod navazuje na pracovní složku /srv/diensten s Caddy z Váš pracovní adresář s compose.yaml, .env a Caddy. Přidáte službu do compose.yaml, blok do Caddyfile a záznam A a AAAA pro název (viz Záznam A a AAAA v sekci Moje domény).
1. DNS
Nasměrujte example.com a www.example.com záznamem A a AAAA na svůj VPS. Pokud Váš web zatím běží jinde, udělejte to až ve chvíli, kdy je nový web hotový.
2. Heslo k databázi v .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Výsledek uložte do .env jako 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
A pod volumes::
wordpress:
wp-db:
Databáze nedostane žádné ports:: WordPress ji najde podle názvu wp-db (viz Docker a firewall: jak bezpečně publikovat porty).
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
Otevřete https://example.com a hned projděte instalací WordPressu. Image WordPressu sám rozpozná, že běží za https proxy.
Aktualizace
- WordPress, pluginy a šablony aktualizujete jako obvykle v administraci WordPressu. Jsou uložené ve svazku
wordpress. - PHP a webový server jsou součástí image. Ty aktualizujete pomocí
docker compose pullaup -d(viz Aktualizace kontejnerů, úklid a omezení logů).
E-mail a zálohy
WordPress odesílá e-maily (zapomenuté heslo, formuláře). Protože je port 25 zavřený, použijte SMTP plugin s e-mailovou schránkou na portu 587 (viz Reverzní DNS a odesílání e-mailů z Vašeho VPS). Pro zálohu potřebujete dvě věci: dump databáze a svazek wordpress s nahranými soubory. Viz Správné zálohování databází a svazků Dockeru.
Více o samotném WordPressu, například o pluginech a zabezpečení, najdete v kurzu WordPressu.
