Baustelle.png Diese Seite muss überarbeitet werden.
Es kümmert sich jemand darum, aber du darfst auch gern selbst mithelfen! Wenn du mit deiner Arbeit fertig bist, dann entferne die Vorlage {{ÜberarbeitenVergeben}} aus dem Artikel.
Danke für deine Mitarbeit!

PHP ist eine Skriptsprache, in der Moodle entwickelt und implementiert ist. Sie ist im Webserver integriert. Der Webserver entdeckt PHP-Seiten (an der Erweiterung *.php) und schickt sie zur Ausführung an PHP. PHP muss installiert und richtig konfiguriert sein, damit Moodle vernünftig (bzw. überhaupt) laufen kann.

PHP Versions

  • Moodle 3.0.1 und folgende Versionen von Moodle unterstützt PHP 7, wobei
    • Moodle 3.1 und frühere Versionen PHP 7.1 und neuere Versionen von PHP nicht unterstützt (was bedeutet dass aktuell keine Kombination von unterstützten Releases von Moodle vor Moodle 3.4 und unterstützter Releases von PHP existiert);
  • Moodle 3.4 und Moodle 3.5 erfordert PHP 7.0 oder PHP 7.1 oder PHP 7.2
  • Moodle 3.6 erfordert PHP 7.0 oder neuere Versionen von PHP
  • Moodle 3.7 und folgende Versionen erfordert PHP 7.1 oder neue Versionen von PHP

PHP-Einstellungen

Verifizieren bzw. setzen Sie die folgenden Einstellungen in Ihrer php.ini oder .htaccess Datei (falls Sie Apache verwenden). Bei Einstellungen, welche ON/OFF als Werte verwenden, können Sie ON mit 1 und OFF mit 0 ersetzen, falls Ihnen dies lieber ist. Vergessen Sie nicht nach einer Änderung an der php.ini den Webserver neu zu starten.

  • memory_limit sollte mindestens 96M sein (wobei manche Funktionen nicht funktionieren werden wenn die Einstellung auf diesem niedrigen Wert gesetzt ist). Mit einem niedrigeren Wert kann Moodle nicht installiert werden. 128M ist empfohlen, große Systeme können sogar einen noch größeren Wert erfordern
  • session.save_handler muss auf FILES gesetzt sein.
  • magic_quotes_runtime muss auf OFF gesetzt sein.
  • file_uploads muss auf ON gesetzt sein.
  • session.auto_start muss auf OFF gesetzt sein.
  • Das temp Verzeichnis muss gesetzt sein und für den Benutzer unter dem der Webserver läuft beschreibbar sein.
  • Prüfen Sie die Einstellungen im Abschnitt error display/logging und stellen Sie sicher dass die dortigen Einstellungen für Ihren Betrieb des Servers passend gesetzt sind.
  • post_max_size und upload_max_filesize begrenzen die maximale Größe von Dateien, die hochgeladen werden können
  • Prüfen Sie die Einstellungen in den Abschnitten [mail function] und database (für Ihre gewählte Datenbank) um sicherzustellen dass die dortigen Einstellungen für Ihren Betrieb des Servers passend gesetzt sind.

Die richtige php.ini Datei finden

Manchmal ist es nicht einfach, die PHP-Konfigurationsdatei php.ini zu finden, manchmal gibt es auf dem Server sogar mehrere solche Dateien. Wenn Sie die PHP-Einstellungen prüfen wollen, gehen Sie in Moodle auf die Seite Website-Administration (oder im Block Einstellungen) > Website-Administration) > Server > PHP-Informationen. Der Pfad zur php.ini Datei ist im Abschnitt Configure Command angezeigt.

Wenn Sie den Cron-Job von Kommandozeile starten, können die PHP-Einstellungen in einer anderen php.ini Datei liegen. Zur Prüfung nutzen Sie das folgende Kommando:

   php -i | grep php.ini

PHP-Erweiterungen und PHP-Bibliotheken

Folgende PHP-Erweiterungen und PHP-Bibliotheken werden für die verschiedenen Moodle-Versionen benötigt bzw. empfohlen:

  • iconv - erforderlich
  • mbstring - empfohlen
  • curl - erforderlich für Netzwerk und Webservices
  • openssl empfohlen (erforderlich für Netzwerk und Webservices)
  • tokenizer - empfohlen
  • xmlrpc - empfohlen (erforderlich für Netzwerk und Webservices)
  • soap - empfohlen (erforderlich für Webservices)
  • ctype - erforderlich
  • zip - erforderlich
  • gd - empfohlen (erforderlich für die Manipulation von Grafiken)
  • simplexml - erforderlich
  • spl - erforderlich
  • pcre - erforderlich
  • dom - erforderlich
  • xml - erforderlich
  • intl - empfohlen
  • json - erforderlich
  • geeignete Erweiterung für Ihren Datenbanktyp - erforderlich, z.B. mysql für den MySQL-Datenbankserver oder pgsql für den PostgreSQL-Datenbankserver
  • Weitere PHP-Erweiterungen werden möglicherweise für die optionale Unterstützung spezieller Moodle-Funktionalitäten benötigt, z.B. für die Authentifizierung über einen LDAP-Server und/oder die Kurseinschreibung oder Socket-Erweiterung für Chat-Server.

Fehlende PHP-Erweiterungen installieren

Wie Sie fehlende PHP-Erweiterungen auf Ihrem Server installieren hängt davon ab, wie PHP auf Ihre Maschine installiert ist und welchen Zugriff Sie auf den Server haben. Hier sind einige Möglichkeiten:

  • Wenn Ihr Server gehostet wird, wenden Sie sich an den Provider bzw. den zuständigen Administrator.
  • Wenn PHP aus dem Quellcode compiliert wurde, müssen Sie recompilieren mit den entsprechenden configure Einstellungen
  • Wenn PHP als Paket installiert wurde (typischerweise unter Linux), installieren Sie die zusätzlichen Pakete mit den entsprechenden Kommandos der Linux-Distribution (z.B. apt-get install, yum install)
  • Wenn Sie einen Windowsserver nutzen, entfernen Sie die Auskommentierung der jeweiligen DLL Bibliotheken in der php.ini Datei.

.htaccess Dateien

Wenn Sie keinen Zugriff auf die php.ini Datei haben oder die obigen Anforderungen mit den PHP-Einstellungen für andere PHP-Anwendungen auf demselben Server kollidieren, dann können Sie die PHP-Einstellungen für Moodle auch in einer .htaccess Datei eintragen und diese Datei ins Wurzelverzeichnis der Moodle-Installation legen (dort wo auch die Moodle-Konfigurationsdatei config.php liegt).

Diese Datei heißt nicht immer .htaccess und manchmal funktioniert sie auch gar nicht. Bei Problemen wenden Sie sich an den Server-Administrator.

Die Eintragungen können in zwei Formen erfolgen:

  • php_value name value
  • php_flag name on/off

Beispiele:

  • php_value memory_limit 128M
  • php_flag register_globals off

Siehe auch