Contrairement à l’installation de Wordpress (WP) sur un navigateur Web, il y a pas mal de tutos concernant l’installation de WP avec Docker.
Ce tuto sera plus un complément à ce tuto du Blog de Marius que j’ai sélectionné (étapes pas à pas et bien illustré) – pour l’installation de WP en Docker (plus particulièrement sur un Synology mais aussi valable sur un autre OS).
Je reprendrais donc les mêmes étapes de ce tuto en apportant quelques précisions ainsi que des compléments indispensables pour le bon fonctionnement du WP :
Si votre thème le nécessite, vous pouvez aussi créer un fichier php.ini (il ne faudra pas oublier d’indiquer le chemin dans le script) :
CRON : Marius propose aussi en complément d'utiliser cette fonctionnalité via votre Syno plutôt que celle intégrée à WP - Cette méthode fonctionne en général bien - En revanche, certains plugins sont incompatibles avec cette manip et vous demanderont de réactiver cette fonction via le CMS WP.
- Uploads non autorisés -> Dans ce cas, il vous faut "re-sauvegarder" les autorisations (avec "appliquer à ce dossier ...") au niveau du dossier WP -> Propriétés -> Autorisations.
- Base de Données injoignable -> Dans ce cas, vous ouvrez Portainer -> Stacks -> wordpress -> (onglet) Editor -> (en bas de la page) Update the stack -> (sur le pop-up) repousser l'image - La pile va se redéployer et tout devrait redevenir à la normale
Ce tuto sera plus un complément à ce tuto du Blog de Marius que j’ai sélectionné (étapes pas à pas et bien illustré) – pour l’installation de WP en Docker (plus particulièrement sur un Synology mais aussi valable sur un autre OS).
Je reprendrais donc les mêmes étapes de ce tuto en apportant quelques précisions ainsi que des compléments indispensables pour le bon fonctionnement du WP :
- Étape 2 : Installer « Éditeur de texte »
- Étape 3 : Installer Portainer (Indispensable pour la suite du tuto ainsi que pour la maintenance de votre pile WP)
- Étape 4 : Obtenir un certificat SSL pour votre Nom de Domaine (NDD) ou un wildcard Syno
- Étape 5, 6, 7, 8 : Configurer le Proxy Inversé (le port proposé est le 8195 mais vous pouvez mettre un autre dans la mesure qu’il n’est pas occupé par une autre application).
Important : Retournez à Panneau de conf -> Sécurité -> Certificat et mettez en correspondance Service et Certificat (NDD = NDD).
- Étape 11 et 12 : Créer le dossier wordpress (que vous pouvez appeler différemment si vous avez plusieurs sites en WP). Créer les sous dossiers db et redis (si vous souhaitez l’installer – si ce n’est pas le cas, il ne faudra pas mettre le script concernant redis) – Aussi, vous pouvez créer un sous dossier html dans lequel vous pouvez regrouper WP (il faudra indiquer le chemin dans votre script)
- Étape 13 : Créer un fichier upload.ini (avec l’éditeur de texte) avec le script suivant :
Code:
file_uploads = On
memory_limit = 256M
upload_max_filesize = 512M (ou mettez 1000M si vous souhaitez)
post_max_size = 512M (ou mettez 1000M si vous souhaitez)
max_execution_time = 600
Si votre thème le nécessite, vous pouvez aussi créer un fichier php.ini (il ne faudra pas oublier d’indiquer le chemin dans le script) :
Code:
max_input_vars = 7000
- Étape 14 : Se connecter à Portainer et ajouter une pile
- Étape 15 : Donnez un nom à la pile et modifier à votre convenance le script (explicatif dans les parenthèses - à enlever si vous utiliser ces scripts) :
Code:
version: '3.9'
services:
wordpress:
image: wordpress:latest (la version php8.3 a présentée des "bugs" pour certains de mes sites)
container_name: Monsite (nom choisi)
hostname: monsite (nom choisi)
healthcheck:
test: curl -f http://localhost:80/ || exit 1
ports:
- 8184:80 (port choisi lors de la config du Proxy Inversé)
depends_on:
db:
condition: service_started
redis:
condition: service_healthy
phpmyadmin:
condition: service_healthy
volumes:
- /volume1/docker/mon site:/var/www/html:rw (si vous avez créez un sous dossier html le chemin sera /volume1/docker/html/mon site)
- /volume1/docker/monsite/uploads.ini:/usr/local/etc/php/conf.d/upload.ini:rw (chemin du fichier upload)
- /volume1/docker/monsite/php.ini:/usr/local/etc/php/conf.d/php.ini:rw (chemin du fichier php si besoin)
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: mapomme
WORDPRESS_DB_PASSWORD: monmotdepasse
WORDPRESS_DB_NAME: monsite_db
restart: on-failure:5
db:
image: mariadb:latest
container_name: Monsite-DB
security_opt:
- no-new-privileges:true
hostname: monsite-db
environment:
MYSQL_DATABASE: monsite_db
MYSQL_USER: mapomme
MYSQL_PASSWORD: monmotdepasse
MYSQL_ROOT_PASSWORD: monmotdepasse
TZ: Europe/Paris
volumes:
- /volume1/docker/monsite/db:/var/lib/mysql:rw
restart: on-failure:5
redis: (optionnel si vous souhaitez installer Redis)
image: redis
hostname: monsite-redis
container_name: Monsite-REDIS
user: 1026:100 (à vérifier)
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume1/docker/monsite/redis:/data:rw
environment:
TZ: Europe/Paris
restart: on-failure:5
phpmyadmin: (optionnel)
image: phpmyadmin
hostname: monsite-phpmyadmin
healthcheck:
test: curl -f http://localhost:80/ || exit 1
container_name: Monsite-phpMyAdmin
ports:
- 2800:80
environment:
PMA_HOST: monsite-db
PMA_PORT: 3306
restart: on-failure:5
- Étape 16 et 17 : Déployez la pile
Important : Depuis qques temps, les autorisations d’accès à votre dossier wordpress changent lors du déploiement de la pile – Avant de configurer, vous retournez dans File Station puis : ->docker->wordpress (ou nom donné si changement)->Propriétés (clic droit) et changer le propriétaire par votre id. Puis dans l'onglet -> Permissions (retirer les utilisateurs créés pendant le déploiement souvent des numéros) -> créer (si pas présent) -> votre id admin (control) + SYSTEM (lire+écrire) + Everyone (lire) -> Appliquer à ce dossier ... Valider.
- Étape 19 et vous pouvez maintenant continuer le tuto référencé
CRON : Marius propose aussi en complément d'utiliser cette fonctionnalité via votre Syno plutôt que celle intégrée à WP - Cette méthode fonctionne en général bien - En revanche, certains plugins sont incompatibles avec cette manip et vous demanderont de réactiver cette fonction via le CMS WP.
Mise à jour d'images (Plus particulièrement WP et DB)
Les mises à jour d'images sont assez fréquentes sur ce type d'installation et génèrent des dysfonctionnements :
- Uploads non autorisés -> Dans ce cas, il vous faut "re-sauvegarder" les autorisations (avec "appliquer à ce dossier ...") au niveau du dossier WP -> Propriétés -> Autorisations.
- Base de Données injoignable -> Dans ce cas, vous ouvrez Portainer -> Stacks -> wordpress -> (onglet) Editor -> (en bas de la page) Update the stack -> (sur le pop-up) repousser l'image - La pile va se redéployer et tout devrait redevenir à la normale
Dernière édition: