Kapitola 7 · 7.4
WordPress v Dockeri
Chcete spustiť WordPress na vašom VPS namiesto hostingového balíka? Pomocou Dockeru umiestnite WordPress a databázu vedľa seba a o https sa postará Caddy.
Tip: Pri hostingovom balíku sa WebOké postará o server, aktualizácie PHP aj zálohy za vás. VPS si vyberte, ak takúto voľnosť naozaj potrebujete.
Každý recept nadväzuje na pracovný priečinok /srv/diensten s Caddy z článku Váš pracovný priečinok s compose.yaml, .env a Caddy. Do compose.yaml pridáte službu, do Caddyfile blok a pre názov vytvoríte záznam A a AAAA (pozrite Záznam A a AAAA v sekcii Moje domény).
1. DNS
Nasmerujte example.com a www.example.com záznamom A a AAAA na váš VPS. Ak vaša stránka zatiaľ beží niekde inde, urobte to až vtedy, keď bude nová stránka hotová.
2. Heslo k databáze v .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Výsledok uložte do .env ako 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áza nedostane ports:: WordPress ju nájde podľa názvu wp-db (pozrite Docker a firewall: bezpečné publikovanie portov).
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
Otvorte https://example.com a hneď prejdite inštaláciou WordPressu. Image WordPressu rozpozná, že sa nachádza za https proxy.
Aktualizácia
- WordPress, pluginy a témy aktualizujete v nástenke WordPressu ako vždy. Nachádzajú sa vo volume
wordpress. - PHP a webový server sú súčasťou image. Aktualizujete ich pomocou
docker compose pullaup -d(pozrite Aktualizácia kontajnerov, upratovanie a obmedzenie logov).
E-mail a záloha
WordPress odosiela e-maily (zabudnuté heslo, formuláre). Keďže port 25 je zablokovaný, použite SMTP plugin s e-mailovou schránkou na porte 587 (pozrite Reverzné DNS a odosielanie pošty z vášho VPS). Na zálohu potrebujete dve veci: dump databázy a volume wordpress s vašimi nahranými súbormi. Pozrite Správne zálohovanie databáz a zväzkov Docker.
Viac o samotnom WordPresse, napríklad o pluginoch a zabezpečení, sa dočítate v kurze WordPressu.
