Chapitre 7 · 7.4
WordPress dans Docker
Vous souhaitez faire tourner WordPress sur votre VPS plutôt que sur un hébergement mutualisé ? Avec Docker, vous placez WordPress et une base de données côte à côte, et Caddy se charge du https.
Astuce : Avec un hébergement mutualisé, WebOké s'occupe pour vous du serveur, des mises à jour de PHP et des sauvegardes. Choisissez le VPS si vous avez réellement besoin de cette liberté.
Chaque recette s'appuie sur le dossier de travail /srv/diensten avec Caddy issu de Votre dossier de travail avec compose.yaml, .env et Caddy. Vous ajoutez un service à compose.yaml, un bloc au Caddyfile, ainsi qu'un enregistrement A et AAAA pour le nom (voir Un enregistrement A et AAAA dans Mes domaines).
1. DNS
Faites pointer example.com et www.example.com vers votre VPS avec un enregistrement A et AAAA. Si votre site tourne encore ailleurs, ne le faites que lorsque le nouveau site est prêt.
2. Un mot de passe de base de données dans .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Placez le résultat dans .env sous la forme 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
Et sous volumes: :
wordpress:
wp-db:
La base de données ne reçoit pas de ports: : WordPress la trouve par le nom wp-db (voir Docker et le pare-feu : publier des ports en toute sécurité).
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
Ouvrez https://example.com et effectuez sans attendre l'installation de WordPress. L'image WordPress détecte qu'elle se trouve derrière un proxy https.
Mises à jour
- WordPress, les extensions et les thèmes se mettent à jour dans le tableau de bord de WordPress, comme d'habitude. Ils se trouvent dans le volume
wordpress. - PHP et le serveur web sont inclus dans l'image. Vous les mettez à jour avec
docker compose pulletup -d(voir Mettre à jour les conteneurs, faire le ménage et limiter les journaux).
E-mail et sauvegarde
WordPress envoie des e-mails (mot de passe oublié, formulaires). Comme le port 25 est fermé, utilisez une extension SMTP avec une boîte mail sur le port 587 (voir DNS inverse et envoi d'e-mails depuis votre VPS). Pour votre sauvegarde, il vous faut deux choses : un dump de la base de données et le volume wordpress contenant vos fichiers envoyés. Voir Bien inclure les bases de données et les volumes Docker dans vos sauvegardes.
Pour en savoir plus sur WordPress lui-même, comme les extensions et la sécurité, consultez le cours WordPress.
