Hinweis: Sie sind auf den Seiten der Moodle 2.4 Dokumentation. Die Dokumentation der aktuellsten Moodle-Version finden Sie hier: Administration über Kommandozeile.

Administration über Kommandozeile: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
{{Installation}}
{{Installation}}


{{Zum Übersetzen}}
Wenn Sie Shell-Zugriff auf Ihren Webserver haben, dann können Sie verschiedene CLI (command line interface) Skripte für die Administration von Moodle nutzen. Alle CLI-Skripte liegen im Verzeichnis ''moodle/admin/cli''. Um Probleme mit der Zugriffskontrolle zu vermeiden, sollten Sie diese Skripte als Webserver-Nutzer ausführen bzw. als der Nutzer, dem der Webserver-Prozess gehört. Das ist besonders wichtig bei der Ausführung der Installations- und Aktualisierungsskripte, da diese Skripte neue Dateien im Moodle-Datenverzeichnis anlegen und der Webserver Schreibzugriff auf diese Dateien benötigt. In Linux-Distributionen heißt der Webserver-Nutzer <code>apache</code> oder <code>wwrun</code> oder <code>httpd</code> o.ä. Als root können Sie die Skripte wie folgt aufrufen:
Wenn Sie Shell-Zugriff auf Ihren Webserver haben, dann können Sie verschiedene CLI (command line interface) Skripte für die Administration von Moodle nutzen. Alle CLI-Skripte liegen im Verzeichnis ''moodle/admin/cli''. Um Probleme mit der Zugriffskontrolle zu vermeiden, sollten Sie diese Skripte als Webserver-Nutzer ausführen bzw. als der Nutzer, dem der Webserver-Prozess gehört. Das ist besonders wichtig bei der Ausführung der Installations- und Aktualisierungsskripte, da diese Skripte neue Dateien im Moodle-Datenverzeichnis anlegen und der Webserver Schreibzugriff auf diese Dateien benötigt. In Linux-Distributionen heißt der Webserver-Nutzer <code>apache</code> oder <code>wwrun</code> oder <code>httpd</code> o.ä. Als root können Sie die Skripte wie folgt aufrufen:


Zeile 41: Zeile 40:
     $ sudo -u apache /usr/bin/php admin/cli/upgrade.php --non-interactive
     $ sudo -u apache /usr/bin/php admin/cli/upgrade.php --non-interactive


Die Aktualisierung über Kommandozeile ist ein sehr komfortabler Weg, wenn Sie den aktuellen Moodle-Code über [[Git]] beziehen. Im folgenden finden Sie die Befehlsfolge, um innerhalb von Sekunden auf die aktuellste Moodle-Version zu aktualisieren und gleichzeitig Ihre lokalen Codeanpassungen zu bewahren:
Die Aktualisierung über Kommandozeile ist ein sehr komfortabler Weg, wenn Sie den aktuellen Moodle-Code über [[Git für Administratoren|Git]] beziehen. Im folgenden finden Sie die Befehlsfolge, um innerhalb von Sekunden auf die aktuellste Moodle-Version zu aktualisieren und gleichzeitig Ihre lokalen Codeanpassungen zu bewahren:
   
   
     $ cd /var/www/sites/moodle/htdocs/
     $ cd /var/www/sites/moodle/htdocs/
Zeile 52: Zeile 51:
===Probleme bei der Aktualisierung über Kommandozeile===
===Probleme bei der Aktualisierung über Kommandozeile===


if your config.php contains information about several moodle instances (distinct moodle websites and databases sharing the same codebase), then this script will silently fail
Wenn Ihre Moodle-Konfigurationsdatei ''config.php'' Informationen zu mehreren Moodle-Instanzen enthält (d.h. verschiedene Moodle-Sites mit eigenen Moodle-Datenbanken, die sich dieselben Moodle-PHP-Skripte teilen), dann funktioniert das Aktaulisierungsskript nicht. Als Lösung empfehlen wir, temporär alle Informationen zu allen Moodle-Instanzen bis auf eine aus der Konfigurationsdatei zu löschen und dann diese zu aktualisieren.


The solution is to temporarily eliminate from config.php all but the one instance you want to upgrade
Wenn das zu Problemen für die anderen Moodle-Instanzen führt, modifizieren Sie das CLI-Skript so, dass es auf eine Kopie der Moodle-Konfigurationsdatei zugreift (die Sie wie beschrieben geändert haben, so dass sie nur noch Informationen zur Moodle-Site enthält, die Sie aktualisieren wollen).
 
If this is a problem for the other instances (production sites), then modify the cli script to point to a copy of config.php  (which will be the one edited to contain only one moodle instance at a time)


== Angepasste Site-Einstellungen ==
== Angepasste Site-Einstellungen ==
 
Während der Installation bzw. Aktualisierung über Kommandozeile setzt Moodle alle administrativen Einstellungen auf die Standardwerte. Siehe MDL-17850 für Details. Kurz gesagt: Sie müssen nur eine Datei ''local/defaults.php'' zu Ihrer Moodle-Installation hinzufügen, um eigene Konfigurationseinstellungen automatisch während des Installations- bzw. Aktualisierungsprozesses zu setzen. Das Format der Datei ist wie folgt:
During the install and upgrade via CLI, Moodle sets the administration variables to the default values. You can use different defaults. See MDL-17850 for details. Shortly, all you need to do is to add a file <code>local/defaults.php</code> into your Moodle installation. The format of the file is like


<code php>
<code php>
<?php
<?php
$defaults['pluginname']['settingname'] = 'settingvalue'; // for plugins
$defaults['pluginname']['settingname'] = 'settingvalue'; // für Plugins
$defaults['moodle']['settingname'] = 'settingvalue';    // for core settings
$defaults['moodle']['settingname'] = 'settingvalue';    // für Einstellungen im Kernsystem
</code>
</code>


These defaults are used during install, upgrade and are also displayed as defaults at the Site administration pages.
Dieses Werte werden bei der Installation, der Aktualisierung und als Voreinstellungen auf den Moodle-Administrationsseiten verwendet.


== Nutzer-Kennwort neu setzen ==
== Nutzer-Kennwort neu setzen ==
 
Wenn Sie aus Versehn Ihr Admin-Kennwort vergessen haben (oder das Kennwort für eine beliebige Person neu setzen wollen), dann können Sie das Skript ''reset_password.php'' verwenden. Das Skript setzt dann das korrekt verschlüsselte Kennwort für die Person.
If you happen to forget your admin password (or you want to set a password for any other user of your Moodle system), you can use reset_password.php script. The script sets the correctly salted password for the given user.


     $ sudo -u apache /usr/bin/php admin/cli/reset_password.php
     $ sudo -u apache /usr/bin/php admin/cli/reset_password.php


== MySQL Storage Engine Konvertierung ==
== MySQL Storage Engine Konvertierung ==
 
Wenn Sie Moodle mit einer MySQL-Datenbank betreiben und bisher standardmäßig MyISAM als Storage Engine für Ihre Datenbanktabellen verwenden, dann können Sie diese in zuverlässigere Storage Engines konvertieren, wie z.B. InnoDB (noch besser ist es, gleich auf eine PostgreSQL-Datenbank umzustellen ;-))
If you run your Moodle site with MySQL database backend and use the default MyISAM as the storage engine for your tables, you may want to convert them to use some more reliable engine like InnoDB (actually, you should want to switch to PostgreSQL ;-) anyway).


     $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB
     $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB
Zeile 84: Zeile 78:
== Cron von Kommandozeile ausführen ==
== Cron von Kommandozeile ausführen ==


In versions 1.x, you could execute admin/cron.php either from command line or via the web. Since Moodle 2.0, only admin/cli/cron.php script can be run via command line.
In Moodle 1.x konnten Sie das Cron-Skript ''admin/cron.php'' entweder über das Moodle-Web-Interface oder über Kommandozeile ausführen. Ab Moodle 2.0 kann über Kommandozeile nur das Skript ''admin/cli/cron.php'' ausgeführt werden.


[[en:Administration via command line]]
[[en:Administration via command line]]

Aktuelle Version vom 31. Juli 2012, 11:08 Uhr


Wenn Sie Shell-Zugriff auf Ihren Webserver haben, dann können Sie verschiedene CLI (command line interface) Skripte für die Administration von Moodle nutzen. Alle CLI-Skripte liegen im Verzeichnis moodle/admin/cli. Um Probleme mit der Zugriffskontrolle zu vermeiden, sollten Sie diese Skripte als Webserver-Nutzer ausführen bzw. als der Nutzer, dem der Webserver-Prozess gehört. Das ist besonders wichtig bei der Ausführung der Installations- und Aktualisierungsskripte, da diese Skripte neue Dateien im Moodle-Datenverzeichnis anlegen und der Webserver Schreibzugriff auf diese Dateien benötigt. In Linux-Distributionen heißt der Webserver-Nutzer apache oder wwrun oder httpd o.ä. Als root können Sie die Skripte wie folgt aufrufen:

   $ cd /Pfad/zum/Moodle-Verzeichnis
   $ sudo -u apache /usr/bin/php admin/cli/somescript.php --params

Die meisten Skripte akzeptieren den üblichen Hilfe-Parameter --help (oder -h), um detaillierte Informationen anzuzeigen, z.B.:

   $ sudo -u apache /usr/bin/php admin/cli/install.php --help


Installation von Kommandozeile

Seit der Version 2.0 kann Moodle von Kommandozeile aus installiert werden. Es gibt zwei Installationsmodi: Im interaktiven Modus fragt das Skript alle Daten ab, die benötigt werden, um die Moodle-Site korrekt aufzusetzen. Im nichtn-interaktiven Modus müssen Sie alle Daten als Parameter beim Skriptaufruf angeben, dann wird die Moodle-Site ohne weitere Abfragen installiert. Die Parameter können auch beim Aufruf des Skript im interaktiven Modus angegeben werden, dann werden diese Daten als Voreinstellungen bei der Abfrage verwendet.

   $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=cs

Wartungsmodus

Um die Moodle-Site über Kommandozeile in den Wartungsmodus zu schalten, können Sie das folgende CLI-Skript verwenden:

   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable

Um den Wartungsmodus wieder auszuschalten, verwenden Sie denselben Aufruf, aber mit dem Parameter --disable.

Offline-Modus

In manchen Situationen möchten Sie Ihre Moodle-Site vielleicht in den Offline-Modus schalten, so dass sie nicht über das Internet erreichbar ist, können jedoch nicht den Webserver komplett abschalten (weil andere Webseiten oder Webapplikationen ebenfalls über den Webserver laufen). Wenn es im Hauptverzeichnis des Moodle-Datenverzeichnisses eine Datei climaintenance.html gibt, dann zeigt Moodle automatisch den Inhalt dieser Seite anstelle jeder anderen Moodle-Seite an.

   $ cd /var/www/sites/moodle/moodledata/
   $ echo '<h1>Entschuldigung, es laufen Wartungsarbeiten</h1>' > climaintenance.html

Sie können auch eine geeignete HTML-Seite erstellen, die Ihre Nutzer/innen darüber informiert, dass der Moodle-Server nicht erreichbar ist. Sie können diese Datei z.B. climaintenance.off nennen und im Hauptverzeichnis des Moodle-Datenverzeichnisses speichern. Bei Bedarf können Sie diese Datei dann einfach umbenennen in climaintenance.html.

Aktualisierung über Kommandozeile

Die Aktualisierung von Moodle kann ebenfalls über Kommandozeile ausgeführt werden. Wie beim Installationsskript gibt es einen interaktiven und einen nicht-interaktiven Modus. Das Skript schaltet die Moodle-Site nicht in den Wartungsmodus, das müssen Sie (vorher) selbst tun. Das Skript sichert auch keinerlei Daten (wenn Sie diesen Artikel lesen, gehen wir davon aus, dass Sie ohnehin eigene Skripte zur Sicherung der Moodle-Datenbank und des Moodle-Datenverzeichnisses haben!).

   $ sudo -u apache /usr/bin/php admin/cli/upgrade.php --non-interactive

Die Aktualisierung über Kommandozeile ist ein sehr komfortabler Weg, wenn Sie den aktuellen Moodle-Code über Git beziehen. Im folgenden finden Sie die Befehlsfolge, um innerhalb von Sekunden auf die aktuellste Moodle-Version zu aktualisieren und gleichzeitig Ihre lokalen Codeanpassungen zu bewahren:

   $ cd /var/www/sites/moodle/htdocs/
   $ git fetch
   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable
   $ git merge origin/cvshead
   $ sudo -u apache /usr/bin/php admin/cli/upgrade.php
   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable

Probleme bei der Aktualisierung über Kommandozeile

Wenn Ihre Moodle-Konfigurationsdatei config.php Informationen zu mehreren Moodle-Instanzen enthält (d.h. verschiedene Moodle-Sites mit eigenen Moodle-Datenbanken, die sich dieselben Moodle-PHP-Skripte teilen), dann funktioniert das Aktaulisierungsskript nicht. Als Lösung empfehlen wir, temporär alle Informationen zu allen Moodle-Instanzen bis auf eine aus der Konfigurationsdatei zu löschen und dann diese zu aktualisieren.

Wenn das zu Problemen für die anderen Moodle-Instanzen führt, modifizieren Sie das CLI-Skript so, dass es auf eine Kopie der Moodle-Konfigurationsdatei zugreift (die Sie wie beschrieben geändert haben, so dass sie nur noch Informationen zur Moodle-Site enthält, die Sie aktualisieren wollen).

Angepasste Site-Einstellungen

Während der Installation bzw. Aktualisierung über Kommandozeile setzt Moodle alle administrativen Einstellungen auf die Standardwerte. Siehe MDL-17850 für Details. Kurz gesagt: Sie müssen nur eine Datei local/defaults.php zu Ihrer Moodle-Installation hinzufügen, um eigene Konfigurationseinstellungen automatisch während des Installations- bzw. Aktualisierungsprozesses zu setzen. Das Format der Datei ist wie folgt:

<?php $defaults['pluginname']['settingname'] = 'settingvalue'; // für Plugins $defaults['moodle']['settingname'] = 'settingvalue'; // für Einstellungen im Kernsystem

Dieses Werte werden bei der Installation, der Aktualisierung und als Voreinstellungen auf den Moodle-Administrationsseiten verwendet.

Nutzer-Kennwort neu setzen

Wenn Sie aus Versehn Ihr Admin-Kennwort vergessen haben (oder das Kennwort für eine beliebige Person neu setzen wollen), dann können Sie das Skript reset_password.php verwenden. Das Skript setzt dann das korrekt verschlüsselte Kennwort für die Person.

   $ sudo -u apache /usr/bin/php admin/cli/reset_password.php

MySQL Storage Engine Konvertierung

Wenn Sie Moodle mit einer MySQL-Datenbank betreiben und bisher standardmäßig MyISAM als Storage Engine für Ihre Datenbanktabellen verwenden, dann können Sie diese in zuverlässigere Storage Engines konvertieren, wie z.B. InnoDB (noch besser ist es, gleich auf eine PostgreSQL-Datenbank umzustellen ;-))

   $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB

Cron von Kommandozeile ausführen

In Moodle 1.x konnten Sie das Cron-Skript admin/cron.php entweder über das Moodle-Web-Interface oder über Kommandozeile ausführen. Ab Moodle 2.0 kann über Kommandozeile nur das Skript admin/cli/cron.php ausgeführt werden.