Глава 7 · 7.4
WordPress в Docker
Искате ли да стартирате WordPress на Вашия VPS вместо в хостинг план? С Docker поставяте WordPress и база данни една до друга, а Caddy се грижи за https.
Съвет: При хостинг план WebOké се грижи вместо Вас за сървъра, обновяванията на PHP и резервните копия. Изберете VPS, ако наистина се нуждаете от тази свобода.
Всяка рецепта надгражда работната папка /srv/diensten с Caddy от Вашата работна папка с compose.yaml, .env и Caddy. Добавяте услуга в compose.yaml, блок в Caddyfile, както и A- и AAAA-запис за името (вижте A и AAAA запис в Моите домейни).
1. DNS
Насочете example.com и www.example.com към Вашия VPS с A- и AAAA-запис. Ако сайтът Ви в момента все още работи другаде, направете това едва когато новият сайт е готов.
2. Парола за базата данни в .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Поставете резултата в .env като 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
А под volumes::
wordpress:
wp-db:
Базата данни не получава ports:: WordPress я намира по името wp-db (вижте Docker и защитната стена: как да публикувате портове безопасно).
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
Отворете https://example.com и веднага преминете през инсталацията на WordPress. Образът (image) на WordPress разпознава, че се намира зад https прокси.
Обновяване
- WordPress, плъгините и темите обновявате в таблото на WordPress, както винаги. Те се намират в тома (volume)
wordpress. - PHP и уеб сървърът са част от образа. Обновявате ги с
docker compose pullиup -d(вижте Обновяване на контейнери, почистване и ограничаване на логовете).
Поща и резервно копие
WordPress изпраща имейли (забравена парола, формуляри). Тъй като порт 25 е затворен, използвайте SMTP плъгин с пощенска кутия на порт 587 (вижте Reverse DNS и изпращане на поща от Вашия VPS). За резервното копие се нуждаете от две неща: дъмп на базата данни и тома wordpress с Вашите качени файлове. Вижте Правилно архивиране на бази данни и Docker volumes.
Повече за самия WordPress, например за плъгините и сигурността, ще прочетете в курса за WordPress.
