PHP: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
(Die Seite wurde neu angelegt: „{{Installation}} PHP ist eine Skriptsprache, in der Moodle entwickelt und implementiert ist. Sie ist im Webserver integriert. Der Webserver entdeckt PHP-Seiten (a…“)
 
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Installation}}
{{Installation}}
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 laufen kann.  
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.  


==Erforderliche PHP-Versionen==
==PHP Versions==
Moodle 2.2 benötigt mindestens PHP 5.3.2.
* 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==
==PHP-Einstellungen==
Moodle braucht eine Menge an PHP-Einstellungen damit es richtig arbeitet. '''Bei den meisten Servern sind das bereits die Standardeinstellungen'''.  Aber manche PHP-Server (bzw. manche PHP-Versionen) haben andere Einstellungen in der Konfigurationsdatei (gewöhnlich in der Datei ''php.ini'').  
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
'''Anmerkung''': Für die einzelnen Einstellungen können Sie "ON" bzw. "1" verwenden (d.h. aktiviert/eingeschaltet) oder "OFF" bzw. "0" (d.h. deaktiviert/ausgeschaltet).
*''session.save_handler'' muss auf FILES gesetzt sein.
*''register_globals'' '''muss''' deaktiviert sein
*''magic_quotes_runtime'' muss auf OFF gesetzt sein.
*''safe_mode'' sollte deaktiviert sein
*''file_uploads'' muss auf ON gesetzt sein.
*''memory_limit'' sollte mindestens 40M sein, 128M ist empfohlen, große Systeme können sogar einen noch größeren Wert erfordern
*''session.auto_start'' muss auf OFF gesetzt sein.
*''session.save_handler'' sollte auf ''FILES'' gesetzt sein
*Das temp Verzeichnis muss gesetzt sein und für den Benutzer unter dem der Webserver läuft beschreibbar sein.
*''magic_quotes_gpc'' sollte deaktiviert 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.
*''magic_quotes_runtime'' sollte deaktiviert sein
*''file_uploads'' sollte aktiviert sein
*''session.auto_start'' sollte deaktiviert sein
*''session.bug_compat_warn'' sollte deaktiviert sein
*Das ''/temp'' Verzeichnis sollte dem Webservernutzer gehören und für ihn schreibbar sein
*Wählen Sie für Ihren Server geeignete Einstellungen im Abschnitt ''error display/logging''
*''post_max_size'' und ''upload_max_filesize'' begrenzen die maximale Größe von Dateien, die hochgeladen werden können
*''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''.
*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==
==HTTP_RAW_POST_DATA Fehler==
Manche Nutzer stellen beim Aufbau von Verbindungen zwischen MNET Servern oder beim Versenden von AJAX Webservice Anfragen Probleme fest, die mit $HTTP_RAW_POST_DATA in Verbindung stehen.
<pre>
Request for server name returned empty response
    line 134 of /mnet/lib.php: call to debugging()
    line 115 of /admin/mnet/peers.php: call to mnet_get_public_key()
</pre>


==PHP-Erweiterungen und PHP-Bibliotheken==
Diese Fehler betreffen Installationen, welche Moodle mit PHP 5.6 betreiben, und betreffen einen PHP bug wenn die '''always_populate_raw_post_data''' Einstellung auf den Standardwert 0 gesetzt ist.
Folgende PHP-Erweiterungen und PHP-Bibliotheken werden für die verschiedenen Moodle-Versionen benötigt bzw. empfohlen:
* [http://www.boutell.com/gd/ GD Bibliothek] und [http://www.freetype.org/ FreeType 2] Bibliothek für Linux-/Unix-Installationen, um dynamische Grafiken der Log-Dateien darstellen zu können
* '''mbstring''' - wird für Multi-Byte-Zeichenketten-Behandlung benötigt und ab Moodle 1.6 empfohlen
* '''iconv''' wird ab Moodle 1.6 empfohlen
* '''mysql''' - diese MySQL-Erweiterung ist Voraussetzung, wenn man eine [[Moodle-Datenbank|MySQL-Datenbank]] einsetzen möchte; beachten Sie, dass diese Erweiterung bei manchen Linux-Distributionen (besonders Red Hat) eine optionale Installation ist
* '''pgsql''' - diese Pgsql-Erweiterung ist Voraussetzung, wenn man eine [[Moodle-Datenbank|PostgreSQL-Datenbank]] benutzen möchte
* '''zlib''' - diese Erweiterung ist Voraussetzung für die zip-/unzip-Funktionalität
* '''pdo''' und '''pdo_sqlite''' - Voraussetzung bei Verwendung einer SQLite 3 Datenbank (wird ab Moodle 2.0, aber nur experimetell, also als Testversion, unterstützt)
* '''curl''' - empfohlen ab Moodle 1.8
* '''tokenizer''' - empfohlen ab Moodle 1.8
* '''curl''' und '''openssl''' - Voraussetzung für die [[Moodle-Netzwerk|Moodle-Netzwerk-Funktionalität]] (ab Moodle 1.8)
* '''xmlrpc''' - Voraussetzung für die [[Moodle-Netzwerk|Moodle-Netzwerk-Funktionalität]] (ab Moodle 1.8)
* '''ctype''' - empfohlen ab Moodle 1.8
* Weitere PHP-Erweiterungen werden möglicherweise für die optionale Unterstützung spezieller Moodle-Funktionalitäten benötigt, insbesondere für die [[Authentifizierung über eine externe Datenbank]] und/oder die [[Kurseinschreibung]] (z.B. [[Authentifizierung über LDAP]] oder Socket-Erweiterung für Chat-Server).


Um diese Fehlermeldungen zu vermeiden sollten Sie den Wert der folgenden Einstellungen in Ihrer php.ini Datei anpassen:
* '''always_populate_raw_post_data''' sollte auf '''-1''' gesetzt sein.


=== Speicher ===
Weitere Hintergründe über diesen Bug können Sie unter https://bugs.php.net/bug.php?id=66763 nachlesen
'''Anmerkung zur Einstellung''' <code>memory_limit</code>: Empfohlen sind 32M für Moodle 1.7, 40M ab Moodle 1.8. Große Seiten können sogar mehr als 128M benötigen, PHP 5.2.x verlangt größere Werte als ältere PHP-Versionen, ebenso 64bit-Server.


==PHP Version==
==Die richtige ''php.ini'' Datei finden==
Moodle 2.1 requires PHP version 5.3.2 or later.
Manchmal ist es nicht einfach, die PHP-Konfigurationsdatei ''php.ini'' zu finden, manchmal gibt es auf dem Server sogar mehrere solche Dateien. Um sicherzugehen sollten Sie 'phpinfo' ausführen (siehe weiter unten in diesem Artikel). Der Pfad zur php.ini Datei ist in den ersten Zeilen im obersten Abschnitt zu finden.


==PHP Settings==
Wenn Sie PHP auf der Kommandozeile (CLI) verwenden, um den [[Cron-Job]] (oder eine anderen Moodle Funktion) zu starten, können die PHP-Einstellungen in einer anderen ''php.ini'' Datei liegen. Zur Prüfung nutzen Sie das folgende Kommando:
Check these settings in your php.ini or .htaccess file (if you're using Apache). For settings which use ON/OFF as their values, you can substitute 1 for ON and 0 for OFF if you prefer. If you change php.ini, don't forget to restart the server.
* ''register_globals'' '''MUST''' be OFF
* ''safe_mode'' needs to be OFF.
* ''memory_limit'' should be at least 40M (although some functions may not work if this low). 128M is recommended. Large systems may need an even higher setting.
* ''session.save_handler'' needs to be set to FILES.
* ''magic_quotes_gpc'' should be OFF.
* ''magic_quotes_runtime'' needs to be OFF.
* ''file_uploads'' needs to be ON.
* ''session.auto_start'' needs to be OFF.
* ''session.bug_compat_warn'' needs to be OFF.
* The temp folder must be defined and writeable by your webserver user
* Check the error display/logging section. Make sure the settings are appropriate for your server use.
* ''post_max_size'' and ''upload_max_filesize'' restrict the maximum file size that can be uploaded.
* Check the ''[mail function]'' and database section (for your chosen database) to make sure they match your server configuration.
 
==Finding the correct php.ini==
Sometimes it is not obvious where the php.ini file is located or you may even find more than one. To be certain run 'phpinfo' - see [[PHP info]]. The path of the php.ini file is a few lines down in the top section.
 
Note that if you are using command-line (CLI) PHP for running cron (or anything else) it may be configured with a ''different'' php.ini file. To check, run the following command:
<pre>
<pre>
php -i | grep php.ini
php -i | grep php.ini
</pre>
</pre>


==PHP Extensions and libraries==
==PHP-Erweiterungen und PHP-Bibliotheken==
The following PHP extensions are required or recommended (some, e.g. iconv, ctype and tokenizer are now included in PHP by default). Others will need to be installed or selected.
Folgende PHP-Erweiterungen und PHP-Bibliotheken werden für die verschiedenen Moodle-Versionen benötigt bzw. empfohlen (manche, z.B. iconv, ctype und tokenizer sind zwischenzeitlich in PHP standardmäßig enthalten). Andere müssen zusätzlich installiert oder aktiviert werden:
* The '''iconv''' extension is required.
* '''iconv''' - erforderlich
* The '''mbstring''' extension is recommended.
* '''mbstring''' - empfohlen
* The '''curl''' extension is required (required for networking and web services).
* '''curl''' - erforderlich für [[MNet|Netzwerk]] und [[Webservices]]
* The '''openssl''' extension is recommended (required for networking and web services).
* '''openssl''' empfohlen (erforderlich für [[MNet|Netzwerk]] und [[Webservices]])
* The '''tokenizer''' extension is recommended.
* '''tokenizer''' - empfohlen
* The '''xmlrpc''' extension is recommended (required for networking and web services).
* '''xmlrpc''' - empfohlen (erforderlich für [[MNet|Netzwerk]] und [[Webservices]])
* The '''soap''' extension is recommended (required for web services).
* '''soap''' - empfohlen (erforderlich für [[Webservices]])
* The '''ctype''' extension is required.
* '''ctype''' - erforderlich
* The '''zip''' extension is required.
* '''zip''' - erforderlich
* The '''gd''' extension is recommended (required for manipulating images).
* '''gd''' - empfohlen (erforderlich für die Manipulation von Grafiken)
* The '''simplexml''' extension is required.
* '''simplexml''' - erforderlich
* The '''spl''' extension is required.
* '''spl''' - erforderlich
* The '''pcre''' extension is required.
* '''pcre''' - erforderlich
* The '''dom''' extension is required.
* '''dom''' - erforderlich
* The '''xml''' extension is required.
* '''xml''' - erforderlich
* The '''intl''' extension is recommended.
* '''intl''' - empfohlen
* The '''json''' extension is required.
* '''json''' - erforderlich
* '''the appropriate extension for your chosen database is required'''
* '''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 [[LDAP-Server|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
*Wenn Sie einen Windowsserver nutzen, entfernen Sie die Auskommentierung der jeweiligen DLL Bibliotheken in der ''php.ini'' Datei.
Nach jeglichen Änderungen oder Ergänzungen müssen Sie Ihren Webserver neu starten damit die Änderungen wirksam werden.
 
== .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''


* Other PHP extensions may be required to support optional Moodle functionality, especially external authentication and/or enrolment (e.g. LDAP extension for LDAP authentication and the sockets extension for Chat server).
'''Beispiele''':
* '''php_value memory_limit 128M'''
* '''php_flag register_globals off'''


==Installing (missing) extensions==
==PHP info==


This depends on how PHP was installed on your machine and what access you have. Here are some possibilities:
Die phpinfo Übersicht zeigt Ihnen Informationen über die Konfiguration Ihrer PHP Installation an. Dies ist insbesondere hilfreich um:
* If this is a hosted server you are likely to have to ask the administrator or hosting company.  
* zu verifizieren dass Ihrer PHP Installation die Mindestanforderungen von Moodle erfüllt.
* If PHP was compiled from source you will need to recompile, changing the 'configure' settings - see [[Compiling PHP from source]].
* zu verifizieren dass die Werte, die Sie in Ihrer PHP Installation gesetzt haben, z.B. die Limits zum Upload von Dateien, auch wirklich berücksichtigt werden.
* If it was installed using packages (typically Linux) you can install the required package (see your Linux distribution's documentation)
* zu verifizieren dass Sie die für einen geordneten Moodle Betrieb erforderten PHP-Erweiterungen, z.B. die LDAP Erweiterung für eine LDAP Anbindung, installiert sind.
* If you are using Windows you just need to uncomment the appropriate DLL files in php.ini


After making any changes or additions, don't forget to re-start your web server.
=== Anzeige der phpinfo innerhalb von Moodle===


== .htaccess files ==
Administratoren finden die PHP Informationen auf der Seite ''Website-Administration'' > Server > [[PHP-Informationen]]''.


If you don't have access to the php.ini file or there are conflicting requirements with other PHP applications on the same server you may be able to change PHP settings in an .htaccess file. This should be placed in the 'root' of your Moodle installation (i.e. the same place as the config.php file).
=== Anzeige der phpinfo außerhalb von Moodle ===


'''The file isn't always called .htaccess and may not work at all. Contact your server administrator to be sure'''
Um die phpinfo anzuzeigen:
* Legen Sie mit Hilfe eines Texteditors eine Datei mit dem Dateinamen info.php an, welche eine einzige Seite beinhaltet:


Settings are made by adding lines in one of two formats:
<code php>
* php_value ''name value''
<?php phpinfo(); ?>
* php_flag ''name on/off''
</code>
 
* Speichern Sie diese Datei als info.php
* Laden Sie diese Datei in das Wurzelverzeichnis Ihrer Webservers hoch.
* Öffnen Sie diese Datei in Ihrem Browser. Zum Beispiel <nowiki>http://<server-name>/info.php</nowiki>.


Examples:
==Siehe auch==
* '''php_value memory_limit 128M'''
* '''php_flag register_globals off'''


==See also==
*[[PHP FAQ]]
*[[PHP FAQ]]
*[[Installing Moodle]]
*[[Installation von Moodle]]
*[[Performance]]
*[[Geschwindigkeit]]
* [https://docs.moodle.org/dev/Moodle_and_PHP7 Moodle and PHP7] in der Moodle Entwickler Dokumentation
*http://www.php.net/ - PHP Website
*http://php.iis.net/ - Microsoft PHP Installer für IIS


*http://www.php.net/ - the PHP web site
[[en:PHP]]
*http://php.iis.net/ - Microsoft PHP Installer for IIS
[[es:PHP]]

Aktuelle Version vom 4. April 2019, 09:21 Uhr

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.

HTTP_RAW_POST_DATA Fehler

Manche Nutzer stellen beim Aufbau von Verbindungen zwischen MNET Servern oder beim Versenden von AJAX Webservice Anfragen Probleme fest, die mit $HTTP_RAW_POST_DATA in Verbindung stehen.

Request for server name returned empty response
 
    line 134 of /mnet/lib.php: call to debugging()
    line 115 of /admin/mnet/peers.php: call to mnet_get_public_key()

Diese Fehler betreffen Installationen, welche Moodle mit PHP 5.6 betreiben, und betreffen einen PHP bug wenn die always_populate_raw_post_data Einstellung auf den Standardwert 0 gesetzt ist.

Um diese Fehlermeldungen zu vermeiden sollten Sie den Wert der folgenden Einstellungen in Ihrer php.ini Datei anpassen:

  • always_populate_raw_post_data sollte auf -1 gesetzt sein.

Weitere Hintergründe über diesen Bug können Sie unter https://bugs.php.net/bug.php?id=66763 nachlesen

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. Um sicherzugehen sollten Sie 'phpinfo' ausführen (siehe weiter unten in diesem Artikel). Der Pfad zur php.ini Datei ist in den ersten Zeilen im obersten Abschnitt zu finden.

Wenn Sie PHP auf der Kommandozeile (CLI) verwenden, um den Cron-Job (oder eine anderen Moodle Funktion) zu 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 (manche, z.B. iconv, ctype und tokenizer sind zwischenzeitlich in PHP standardmäßig enthalten). Andere müssen zusätzlich installiert oder aktiviert werden:

  • 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
  • Wenn Sie einen Windowsserver nutzen, entfernen Sie die Auskommentierung der jeweiligen DLL Bibliotheken in der php.ini Datei.

Nach jeglichen Änderungen oder Ergänzungen müssen Sie Ihren Webserver neu starten damit die Änderungen wirksam werden.

.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

PHP info

Die phpinfo Übersicht zeigt Ihnen Informationen über die Konfiguration Ihrer PHP Installation an. Dies ist insbesondere hilfreich um:

  • zu verifizieren dass Ihrer PHP Installation die Mindestanforderungen von Moodle erfüllt.
  • zu verifizieren dass die Werte, die Sie in Ihrer PHP Installation gesetzt haben, z.B. die Limits zum Upload von Dateien, auch wirklich berücksichtigt werden.
  • zu verifizieren dass Sie die für einen geordneten Moodle Betrieb erforderten PHP-Erweiterungen, z.B. die LDAP Erweiterung für eine LDAP Anbindung, installiert sind.

Anzeige der phpinfo innerhalb von Moodle

Administratoren finden die PHP Informationen auf der Seite Website-Administration > Server > PHP-Informationen.

Anzeige der phpinfo außerhalb von Moodle

Um die phpinfo anzuzeigen:

  • Legen Sie mit Hilfe eines Texteditors eine Datei mit dem Dateinamen info.php an, welche eine einzige Seite beinhaltet:

<?php phpinfo(); ?>

  • Speichern Sie diese Datei als info.php
  • Laden Sie diese Datei in das Wurzelverzeichnis Ihrer Webservers hoch.
  • Öffnen Sie diese Datei in Ihrem Browser. Zum Beispiel http://<server-name>/info.php.

Siehe auch