LMS/Moodle: Unterschied zwischen den Versionen

Aus Dokument
Zur Navigation springen Zur Suche springen
// 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
sudo git checkout
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:


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


</syntaxhighlight>
<pre>sudo systemctl stop nginx
sudo certbot certonly --standalone -d lernen.ahrensburg.city


== 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
</pre>
<pre>
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>
&lt;pre&gt;
sudo nano /etc/nginx/conf.d/moodle.conf
sudo nano /etc/nginx/conf.d/moodle.conf
</pre>


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


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