Rozdział 7 · 7.4
WordPress w Dockerze
Chcą Państwo uruchomić WordPress na swoim VPS zamiast na pakiecie hostingowym? Dzięki Dockerowi WordPress i baza danych działają obok siebie, a Caddy obsługuje https.
Wskazówka: W pakiecie hostingowym WebOké dba za Państwa o serwer, aktualizacje PHP i kopie zapasowe. Prosimy wybrać VPS, jeśli naprawdę potrzebują Państwo tej swobody.
Każdy przepis opiera się na katalogu roboczym /srv/diensten z Caddy z artykułu Katalog roboczy z compose.yaml, .env i Caddy. Dodają Państwo usługę do compose.yaml, blok do pliku Caddyfile oraz rekord A i AAAA dla nazwy (zob. Rekord A i AAAA w Moje domeny).
1. DNS
Prosimy skierować example.com i www.example.com rekordem A i AAAA na swój VPS. Jeśli strona działa obecnie jeszcze gdzie indziej, prosimy zrobić to dopiero wtedy, gdy nowa strona będzie gotowa.
2. Hasło do bazy danych w .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Wynik prosimy wpisać 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:
Baza danych nie otrzymuje ports:: WordPress znajduje ją pod nazwą wp-db (zob. Docker i zapora sieciowa: bezpieczne publikowanie portów).
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
Prosimy otworzyć https://example.com i od razu przejść przez instalację WordPressa. Obraz WordPressa rozpoznaje, że działa za proxy https.
Aktualizacje
- WordPress, wtyczki i motywy aktualizują Państwo jak zwykle w kokpicie WordPressa. Znajdują się one w wolumenie
wordpress. - PHP i serwer WWW są zawarte w obrazie. Aktualizują je Państwo poleceniami
docker compose pulliup -d(zob. Aktualizacja kontenerów, porządkowanie i ograniczanie logów).
Poczta i kopia zapasowa
WordPress wysyła wiadomości e-mail (zapomniane hasło, formularze). Ponieważ port 25 jest zablokowany, prosimy użyć wtyczki SMTP ze skrzynką pocztową na porcie 587 (zob. Odwrotny DNS i wysyłanie poczty z serwera VPS). Do kopii zapasowej potrzebne są dwie rzeczy: zrzut bazy danych oraz wolumen wordpress z przesłanymi plikami. Zob. Prawidłowe uwzględnianie baz danych i woluminów Docker w kopii zapasowej.
Więcej o samym WordPressie, na przykład o wtyczkach i bezpieczeństwie, przeczytają Państwo w kursie WordPressa.
