Plesk bietet die Möglichkeit weitere Datenbanken in der Oberfläche einzubinden. Wenn man eine neuere/andere Version der Datenbank nutzen möchte ist dies sehr hilfreich. Dies ist mit Moodle 3.9 und Ubuntu 18.04 notwendig, da die Datenbankversion zu alt ist und ein update auf Ubuntu 20.04 zu diesem Zeitpunkt von Plesk noch nicht unterstützt wird.
Installation Docker
Dies sind zusammen kopierte Befehle aus der offiziellen Dokumentation. Zusätzlich habe ich direkt docker-compose mit installiert. Befehle als root ausführen!
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose
Ich empfehle docke nicht als root laufen zu lassen. Entweder erstellt man einen eigenen Benutzer bzw. ich habe mich dazu entschieden docker unter den Benutzernamen einer meiner Domains laufen zu lassen.
sudo usermod -aG docker DOMAIN_USERNAME
Docker compose Datei
Zuerst muss eine docker-compose.yml Datei erstellt werden. Z.B. unter /var/www/domain.de/docker
version: "3.3"
services:
mariadb_moodle01:
image: mariadb:10.5
container_name: mariadb_moodle01
restart: always
environment:
- MYSQL_ROOT_PASSWORD=123test
volumes:
- /var/www/vhosts/domain.de/dockerdb/data/mariadb:/var/lib/mysql
ports:
- 3316:3306
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
Der Pfad für die Daten, Passwort und Name des containers sollten angepasst werden. Die Parameter zum starten der Datenbank sind angepasst, damit für moodle volle UFT8 Unterstützung herrscht.
Der Lokale Port (in diesem Fall 3316) kann nach belieben angepasst werden, sollte sich aber nicht mit einem bestehenden überschneiden.
Starten / Neu erstellen
Es ist empfehlenswert ein Skript z.b. rebuild.sh zu erstellen, welches den docker container installiert und startet bzw. auch ein update durchführt wenn eine neuere existiert.
#!/bin/bash
cd $(dirname "$0")
docker-compose up -d --build mariadb_moodle01
Danach das skript mit chmod +x ausführbar machen und starten.
Passwort für lokalen Login ändern (optional)
Wenn man das root password ändern möchte und dich per mysql Konsolen client einloggt, muss man aufpassen auf welcher Datenbank man landet. Beim login zum localhost wird der port ignoriert man muss zusätzlich protocol=TCP angeben.
mysql --user=root --port=3316 --protocol=TCP --password
Passwort ändern wenn gewünscht.
grant all on *.* to root@localhost identified by '123test' with grant option;
flush privileges;
quit;
Datenbank in Plesk einrichten
Unter „Tools & Settings“ die Datenbank Server konfigurieren.
Wichtig ist hier den Domainnamen des Servers anzugeben, da wenn hier localhost angegeben wird, der Port ignoiert wird und sich zur plesk mariadb verbunden wird.
Aus diesem Grund müssen remote Verbindungen zugelassen werden.
Datenbank für Benutzer/Domains erstellen
Beim erstellen einer neuen Datenbank kann man nun den Datenbankserver auswählen.
Automatisches Update
nano /etc/cron.weekly/update-mariadb-docker
Das Skript zum erstellen und updaten der ausführen lassen
#!/bin/bash
echo "$(date) start update" >> /var/log/update-mariadb-docker.log
/var/www/vhosts/nissel.it/dockerdb/rebuild.sh >> /var/log/update-mariadb-docker.log 2>&1
chmod +x /etc/cron.weekly/update-mariadb-docker
Backup
Wenn es ein plesk Backup dieser Domain oder des Servers gibt, kann auf den data Ordner des maradb Ordner nicht zugegriffen werden. Deswegen sollte man diesen aus dem Backup ausschließen. Im Normalen Datenbank Backup der Domain (mysqldump) ist der Container enthalten.
Plesk: 18.0.31
Ubuntu: 18.04.5
Links
https://canox.net/2017/08/passwort-fuer-den-root-benutzer-von-mariadb-setzen/
https://dev.mysql.com/doc/refman/8.0/en/connecting.html
https://docs.docker.com/engine/install/ubuntu/
Ein einfacherer Weg docker zu installieren: https://linuxhint.com/install_configure_docker_ubuntu/