Server:Moodle: Unterschied zwischen den Versionen

Aus ahrensburg.city
Zur Navigation springen Zur Suche springen
// via Wikitext Extension for VSCode
 
// via Wikitext Extension for VSCode
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
rsync -avz --delete /var/www/moodle\
rsync -avz --dry-run
 
 
rsync -avz --delete \
     --perms --times \
     --perms --times \
    --exclude '.git/' \
    --exclude '.git/' \
    --exclude '.gitignore' \
    --exclude '.gitignore' \
        --exclude 'config.php' \
    --exclude 'config.php' \
     /var/www/moodle \
    --exclude 'cache/' \
     user@prod:/var/www/moodle
    --exclude 'localcache/' \
    --exclude 'muc/' \
    --exclude 'sessions/' \
     /var/www/moodle/ \
     user@prod:/var/www/moodle/
 


</syntaxhighlight>
</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
</pre>
<pre>
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
</pre>
<pre>
server {
    listen 443 ssl;
    server_name  lernen.ahrensburg.city;
    root /var/www/moodle/moodle;
    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;
  }
}
</pre>
== 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:
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
Achten Sie darauf, dass das Verzeichnis nicht über den Webserver erreichbar ist, um die Sicherheit Ihrer Moodle-Installation zu gewährleisten.

Aktuelle Version vom 10. Juli 2025, 16:26 Uhr

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;
    server_name  lernen.ahrensburg.city;
    root /var/www/moodle/moodle;
    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.