====== Installer Dokuwiki ====== :!: en cours de test :!: **Dokuwiki** n'est pas encore compatible avec **PHP 8.x**, donc je vais le faire tourner dans un conteneur disposant de **PHP 7.x**. ===== Créer un conteneur depuis une image officielle de PHP+Apache ===== Source: [[https://loganmarchione.com/2022/03/the-best-way-to-run-dokuwiki-in-docker/]] Décompresser une copie archivée du wiki dans un nouveau dossier **/var/www/dokuwiki** : sudo mkdir /var/www/dokuwiki cd /var/www/dokuwiki sudo unzip /home/marc/backup-de-mon-wiki-AAAAMMJJ.zip sudo chown -R www-data:www-data /var/www/dokuwiki Dans ce dossier, créer un fichier **docker-compose.yml** : version: '3' services: dokuwiki: container_name: dokuwiki image: php:7-apache-bullseye restart: unless-stopped ports: - '8888:80' volumes: - '/var/www/dokuwiki:/var/www/html' **ports** \\ Le port **80** du conteneur est redirigé vers le port local **8888** **volumes** \\ Le dossier **/var/www/html** du conteneur est redirigé vers le dossier **/var/www/dokuwiki** Ensuite lancer **docker-compose** docker-compose up Lorsque le conteneur a été démarré, visiter le site [[http://ADRESSE-DU-SERVEUR:8888]]. Arrêter le conteneur avec **Ctrl+C**. ===== Lancer le conteneur au démarrage du serveur ===== Créer un fichier **/etc/systemd/system/docker-dokuwiki.service** : [Unit] Description=Conteneur pour Dokuwiki Requires=docker.service After=docker.service [Service] Type=oneshot RemainAfterExit=yes WorkingDirectory=/var/www/dokuwiki ExecStart=/usr/bin/docker-compose up -d ExecStop=/usr/bin/docker-compose down TimeoutStartSec=0 [Install] WantedBy=multi-user.target Lancer cette commande pour **activer** le nouveau service : sudo systemctl enable docker-dokuwiki Ensuite le démarrer : sudo systemctl start docker-dokuwiki Lorsque le serveur est redémarré, le conteneur est également redémarré en tant que service. ===== Configuration d'Apache sur le serveur Hôte ===== Apache sur le serveur hôte doit rediriger vers le conteneur. Vérifier que le module **proxy** est activé : sudo apache2ctl -M Sinon l'activer : sudo a2enmod proxy_http sudo a2enmod proxy sudo systemctl restart apache2 Créer un VirtualHost pour le site DokuWiki dockerisé : ServerName dokuwiki.mydomain.org ServerAdmin marc@localhost ProxyPreserveHost On ProxyRequests Off ProxyVia On ProxyPass / http://localhost:8888/ ProxyPassReverse / http://localhost:8888/ ErrorLog ${APACHE_LOG_DIR}/dokuwiki.mydomain.org/error.log CustomLog ${APACHE_LOG_DIR}/dokuwiki.mydomain.org/access.log combined