LMS/Moodle: Unterschied zwischen den Versionen
// via Wikitext Extension for VSCode |
imported>Import Version 148 |
||
| Zeile 3: | Zeile 3: | ||
== Git herunterladen == | == Git herunterladen == | ||
<pre> | |||
sudo git clone https://github.com/moodle/moodle.git /var/www/moodle | <pre>sudo git clone https://github.com/moodle/moodle.git /var/www/moodle | ||
sudo chmod -R 777 /var/www | sudo chmod -R 777 /var/www | ||
cd /var/www/moodle | cd /var/www/moodle | ||
sudo git tag -l | sort -V | sudo git tag -l | sort -V | ||
git reset --hard | |||
</pre> | git checkout v5.1.3</pre> | ||
=== Moodle upgraden === | |||
<pre>cd /var/www/moodle | |||
git fetch --all | |||
git checkout v5.1.3</pre> | |||
== Deployment-Skript: Rsync für Moodle == | == Deployment-Skript: Rsync für Moodle == | ||
Ersten Mal Installation von Moodle auf einem Produktionsserver. Der folgende `rsync`-Befehl wird verwendet, um eine Moodle-Installation von einem lokalen Server auf einen Produktionsserver zu übertragen. Dabei werden sensible und unnötige Dateien ausgeschlossen: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash">rsync -avz --dry-run | ||
rsync -avz --dry-run | |||
| Zeile 31: | Zeile 32: | ||
--exclude 'sessions/' \ | --exclude 'sessions/' \ | ||
/var/www/moodle/ \ | /var/www/moodle/ \ | ||
user@prod:/var/www/moodle/ | user@prod:/var/www/moodle/</syntaxhighlight> | ||
== nginx-Konfiguration für Moodle == | |||
Die folgende Konfiguration für den Nginx-Webserver ist für die Bereitstellung von Moodle | |||
< | <pre>sudo systemctl stop nginx | ||
sudo certbot certonly --standalone -d lernen.ahrensburg.city | |||
Moodle Einstellungen für Nginx auf dem Server Rechner | Moodle Einstellungen für Nginx auf dem Server Rechner | ||
Ein Beispiel für eine einfache Nginx-Konfiguration für Moodle auf einem Server Rechner: | Ein Beispiel für eine einfache Nginx-Konfiguration für Moodle auf einem Server Rechner: | ||
<pre> | |||
sudo nano /etc/nginx/conf.d/moodle.conf | sudo nano /etc/nginx/conf.d/moodle.conf | ||
server { | server { | ||
listen 443 ssl; | listen 443 ssl http2; | ||
listen [::]:443 ssl http2; | |||
server_name lernen.ahrensburg.city; | server_name lernen.ahrensburg.city; | ||
root /var/www/moodle/moodle; | root /var/www/moodle/moodle/public; | ||
index index.php index.html index.htm; | index index.php index.html index.htm; | ||
ssl_certificate /etc/letsencrypt/live/lernen.ahrensburg.city/fullchain.pem; | ssl_certificate /etc/letsencrypt/live/lernen.ahrensburg.city/fullchain.pem; | ||
| Zeile 75: | Zeile 71: | ||
log_not_found off; | log_not_found off; | ||
} | } | ||
} | }</pre> | ||
</pre> | |||
== Moodledata-Verzeichnis erstellen == | == Moodledata-Verzeichnis erstellen == | ||
Das Verzeichnis `moodledata` ist für Moodle zwingend erforderlich und sollte außerhalb des Webroots liegen. Erstellen Sie das Verzeichnis und passen Sie die Berechtigungen an: | Das Verzeichnis `moodledata` ist für Moodle zwingend erforderlich und sollte außerhalb des Webroots liegen. Erstellen Sie das Verzeichnis und passen Sie die Berechtigungen an: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash">sudo mkdir -p /var/www/moodle/moodledata | ||
sudo mkdir -p /var/www/moodle/moodledata | |||
sudo chown -R www-data:www-data /var/www/moodle/moodledata | sudo chown -R www-data:www-data /var/www/moodle/moodledata | ||
sudo chmod -R 770 /var/www/moodle/moodledata | sudo chmod -R 770 /var/www/moodle/moodledata</syntaxhighlight> | ||
</syntaxhighlight> | |||
Achten Sie darauf, dass das Verzeichnis nicht über den Webserver erreichbar ist, um die Sicherheit Ihrer Moodle-Installation zu gewährleisten. | Achten Sie darauf, dass das Verzeichnis nicht über den Webserver erreichbar ist, um die Sicherheit Ihrer Moodle-Installation zu gewährleisten. | ||
== PHP und erforderliche Erweiterungen installieren == | |||
== moodledata-Verzeichnis erstellen und Berechtigungen setzen == | |||
Erstelle das Verzeichnis für moodledata und setze die passenden Rechte: | Erstelle das Verzeichnis für moodledata und setze die passenden Rechte: | ||
<pre> | |||
sudo mkdir /var/www/moodledata | <pre>sudo mkdir /var/www/moodledata | ||
sudo chown -R www-data:www-data /var/www/moodledata | sudo chown -R www-data:www-data /var/www/moodledata | ||
sudo chmod 770 -R /var/www/moodledata | sudo chmod 770 -R /var/www/moodledata</pre> | ||
</pre> | |||
Das Verzeichnis <code>moodledata</code> sollte sich außerhalb des Webroots befinden und für den Webserver-Benutzer (z.B. <code>www-data</code>) beschreibbar sein. | Das Verzeichnis <code>moodledata</code> sollte sich außerhalb des Webroots befinden und für den Webserver-Benutzer (z.B. <code>www-data</code>) beschreibbar sein. | ||
==PHP-FPM Einstellungen anpassen== | |||
== PHP-FPM Einstellungen anpassen == | |||
Öffne die Konfigurationsdatei für PHP-FPM, um Einstellungen wie z.B. die maximale Dateigröße für Uploads oder die Speicherlimits zu ändern: | Öffne die Konfigurationsdatei für PHP-FPM, um Einstellungen wie z.B. die maximale Dateigröße für Uploads oder die Speicherlimits zu ändern: | ||
<pre> | |||
sudo nano /etc/php/8.4/fpm/php.ini | <pre>sudo nano /etc/php/8.4/fpm/php.ini</pre> | ||
</pre> | |||
Empfohlene Einstellungen für Moodle: | Empfohlene Einstellungen für Moodle: | ||
<pre> | |||
; Mit Strg+W (bzw. Ctrl+W) kannst du im Editor nach allen Werten suchen, um die Einstellung schnell zu finden. | <pre>; Mit Strg+W (bzw. Ctrl+W) kannst du im Editor nach allen Werten suchen, um die Einstellung schnell zu finden. | ||
max_input_vars = 5000 | max_input_vars = 5000 | ||
upload_max_filesize = 100M | upload_max_filesize = 100M | ||
post_max_size = 100M | post_max_size = 100M | ||
max_execution_time = 300 | max_execution_time = 300 | ||
memory_limit = 512M | memory_limit = 512M</pre> | ||
</pre> | |||
Starte PHP-FPM neu, damit die Änderungen wirksam werden: | Starte PHP-FPM neu, damit die Änderungen wirksam werden: | ||
<pre> | |||
sudo systemctl restart php8.4-fpm | <pre>sudo systemctl restart php8.4-fpm</pre> | ||
</pre> | |||
---- | ---- | ||
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).'' | ''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).'' | ||
Version vom 23. Februar 2026, 17:32 Uhr
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Git herunterladen
sudo git clone https://github.com/moodle/moodle.git /var/www/moodle sudo chmod -R 777 /var/www cd /var/www/moodle sudo git tag -l | sort -V git reset --hard git checkout v5.1.3
Moodle upgraden
cd /var/www/moodle git fetch --all git checkout v5.1.3
Deployment-Skript: Rsync für Moodle
Ersten Mal Installation von Moodle auf einem Produktionsserver. Der folgende `rsync`-Befehl wird verwendet, um eine Moodle-Installation von einem lokalen Server auf einen Produktionsserver zu übertragen. Dabei werden sensible und unnötige Dateien ausgeschlossen:
rsync -avz --dry-run
rsync -avz --delete \
--perms --times \
--exclude '.git/' \
--exclude '.gitignore' \
--exclude 'config.php' \
--exclude 'cache/' \
--exclude 'localcache/' \
--exclude 'muc/' \
--exclude 'sessions/' \
/var/www/moodle/ \
user@prod:/var/www/moodle/
nginx-Konfiguration für Moodle
Die folgende Konfiguration für den Nginx-Webserver ist für die Bereitstellung von Moodle
sudo systemctl stop nginx
sudo certbot certonly --standalone -d lernen.ahrensburg.city
Moodle Einstellungen für Nginx auf dem Server Rechner
Ein Beispiel für eine einfache Nginx-Konfiguration für Moodle auf einem Server Rechner:
<pre>
sudo nano /etc/nginx/conf.d/moodle.conf
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name lernen.ahrensburg.city;
root /var/www/moodle/moodle/public;
index index.php index.html index.htm;
ssl_certificate /etc/letsencrypt/live/lernen.ahrensburg.city/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/lernen.ahrensburg.city/privkey.pem;
location / {
try_files $uri $uri/ =404;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
Moodledata-Verzeichnis erstellen
Das Verzeichnis `moodledata` ist für Moodle zwingend erforderlich und sollte außerhalb des Webroots liegen. Erstellen Sie das Verzeichnis und passen Sie die Berechtigungen an:
sudo mkdir -p /var/www/moodle/moodledata
sudo chown -R www-data:www-data /var/www/moodle/moodledata
sudo chmod -R 770 /var/www/moodle/moodledata
Achten Sie darauf, dass das Verzeichnis nicht über den Webserver erreichbar ist, um die Sicherheit Ihrer Moodle-Installation zu gewährleisten.
PHP und erforderliche Erweiterungen installieren
moodledata-Verzeichnis erstellen und Berechtigungen setzen
Erstelle das Verzeichnis für moodledata und setze die passenden Rechte:
sudo mkdir /var/www/moodledata sudo chown -R www-data:www-data /var/www/moodledata sudo chmod 770 -R /var/www/moodledata
Das Verzeichnis moodledata sollte sich außerhalb des Webroots befinden und für den Webserver-Benutzer (z.B. www-data) beschreibbar sein.
PHP-FPM Einstellungen anpassen
Öffne die Konfigurationsdatei für PHP-FPM, um Einstellungen wie z.B. die maximale Dateigröße für Uploads oder die Speicherlimits zu ändern:
sudo nano /etc/php/8.4/fpm/php.ini
Empfohlene Einstellungen für Moodle:
; Mit Strg+W (bzw. Ctrl+W) kannst du im Editor nach allen Werten suchen, um die Einstellung schnell zu finden. max_input_vars = 5000 upload_max_filesize = 100M post_max_size = 100M max_execution_time = 300 memory_limit = 512M
Starte PHP-FPM neu, damit die Änderungen wirksam werden:
sudo systemctl restart php8.4-fpm
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).