--- title: Moodle Server mit Ubuntu 20 LTS und Iomad description: Tutorials der Oculus Quest 2 image: https://i.imgur.com/oIqtz9C.gif tags: Moodle, Ubuntu, Linux, Iomad, Server, MySql, Datenbank lang: de dir: ltr toc: true toc_label: "Inhaltsverzeichnis" toc_icon: "vr-cardboard" toc_sticky: "true" --- # Moodle Server mit Ubuntu 20 LTS und Iomad [![hackmd-github-sync-badge](https://hackmd.io/J9OYjzJtSFuT47hMF5Rl_Q/badge)](https://hackmd.io/J9OYjzJtSFuT47hMF5Rl_Q) ## Ubuntu Server-Image herunterladen https://releases.ubuntu.com/20.04/ ## Virtualbox mit dem Ubuntu Image einrichten ### Netzwerkbrücke aktivieren ![](https://i.imgur.com/6jiNfWy.png) ### IP-Adresse ermitteln ```ifconfig ``` -> 192.168.178.132 ### Auf dem Mac (oder PC) die Auflösung des Hosts verknüpfen auf dem Mac ```sudo nano /etc/hosts``` die IP eintragen und moodle.local zuweisen: ![](https://i.imgur.com/Foyhn6t.png) ## Moodle Server auf Virtualbox vorbereiten ```sudo -i```wechselt auf root ### SSH Zugriff ermöglichen [Allow SSH root login on Ubuntu 20.04 Focal Fossa Linux](https://linuxconfig.org/allow-ssh-root-login-on-ubuntu-20-04-focal-fossa-linux) ### Shellbefehle zur Installation: ```shell= sudo apt update && apt upgrade -y apt install mariadb-server sudo apt install apache2 libapache2-mod-fcgid sudo apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-intl php-xmlrpc php-soap a2enconf php7.4-fpm sudo a2enmod actions fcgid alias proxy_fcgi setenvif a2dismod php7.4 a2dismod mpm_prefork a2dismod mpm_worker a2enmod mpm_event systemctl restart php7.4-fpm apache2 ``` ### anlegen: /etc/apache2/sites-available/moodle.conf ```shell= ############################ <VirtualHost *:80> ServerName moodle.local ServerAdmin webmaster@localhost DocumentRoot /var/www/moodle <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> #################################################################### ``` ### Weitere Shellbefehle zur Installation: ```shell= a2ensite moodle.conf systemctl reload apache2 mkdir /var/www/moodle echo '<?php phpinfo(); ?>' > /var/www/moodle/info.php ```` ### host eintrag hinzufügen: "192.168.178.xxx moodle.local" 192.168.178.xxx moodle.local 192.168.178.xxx www.moodle.local ### im Browser öffnen: http://moodle.local/info.php ### maschine speichern und klonen ## Anschließend IOMAD moodle installieren: https://www.iomad.org/wp-content/uploads/2021/03/Iomad-Installation-Guide.pdf ### Datenbank für moodle erzeugen via SSH: ```shell= mysql CREATE DATABASE moodledb; CREATE USER 'moodleowner'@'localhost' IDENTIFIED BY '$mdb2passwd'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON moodledb.* TO 'moodleowner'@'localhost'; GRANT FILE ON *.* TO 'moodleowner'@'localhost'; quit ``` ### Installation iomad ```shell= cd /var/www/moodle git clone https://github.com/iomad/iomad.git cd iomad git checkout -b myiomad origin/IOMAD_310_STABLE mkdir /var/www/moodledata && chmod 777 /var/www/moodledata ``` **ändern!!!**: ```/etc/apache2/sites-available/moodle.conf -> DocumentRoot /var/www/moodle/iomad``` ```systemctl restart php7.4-fpm apache2``` ### http://moodle.local aufrufen und config.php Datei mit Hilfe des Assistenten generieren lassen ![](https://i.imgur.com/nVTs5O5.png) **ändern!!!**: ```/moodle``` entfernen ### config.php ```shell= <?php // Moodle configuration file unset($CFG); global $CFG; $CFG = new stdClass(); $CFG->dbtype = 'mariadb'; $CFG->dblibrary = 'native'; $CFG->dbhost = 'localhost'; $CFG->dbname = 'moodledb'; $CFG->dbuser = 'moodleowner'; $CFG->dbpass = '$mdb2passwd'; $CFG->prefix = 'mdl_'; $CFG->dboptions = array ( 'dbpersist' => 0, 'dbport' => '', 'dbsocket' => '', 'dbcollation' => 'utf8mb4_general_ci', ); $CFG->wwwroot = 'http://moodle.local'; $CFG->dataroot = '/var/www/moodledata'; $CFG->admin = 'admin'; $CFG->directorypermissions = 0777; require_once(__DIR__ . '/lib/setup.php'); // There is no php closing tag in this file, // it is intentional because it prevents trailing whitespace problems! ```