====== 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