Hinweis: Sie sind auf den Seiten der Moodle 2.0 Dokumentation. Die Dokumentation der aktuellsten Moodle-Version finden Sie hier: PHP.

PHP

Aus MoodleDocs
Version vom 24. Mai 2012, 10:09 Uhr von Gisela Hillenbrand (Diskussion | Beiträge) (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…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

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.

Erforderliche PHP-Versionen

Moodle 2.2 benötigt mindestens PHP 5.3.2.

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

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

  • register_globals muss deaktiviert sein
  • safe_mode sollte deaktiviert sein
  • memory_limit sollte mindestens 40M sein, 128M ist empfohlen, große Systeme können sogar einen noch größeren Wert erfordern
  • session.save_handler sollte auf FILES gesetzt sein
  • magic_quotes_gpc sollte deaktiviert sein
  • 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
  • Prüfen Sie die Einstellungen in den Abschnitten [mail function] und database.

Die richtige php.ini Datei finden

PHP-Erweiterungen und PHP-Bibliotheken

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

  • GD Bibliothek und 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 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 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-Funktionalität (ab Moodle 1.8)
  • xmlrpc - Voraussetzung für die 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).


Speicher

Anmerkung zur Einstellung memory_limit: 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

Moodle 2.1 requires PHP version 5.3.2 or later.

PHP Settings

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:

php -i | grep php.ini

PHP Extensions and libraries

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.

  • The iconv extension is required.
  • The mbstring extension is recommended.
  • The curl extension is required (required for networking and web services).
  • The openssl extension is recommended (required for networking and web services).
  • The tokenizer extension is recommended.
  • The xmlrpc extension is recommended (required for networking and web services).
  • The soap extension is recommended (required for web services).
  • The ctype extension is required.
  • The zip extension is required.
  • The gd extension is recommended (required for manipulating images).
  • The simplexml extension is required.
  • The spl extension is required.
  • The pcre extension is required.
  • The dom extension is required.
  • The xml extension is required.
  • The intl extension is recommended.
  • The json extension is required.
  • the appropriate extension for your chosen database is required
  • 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).

Installing (missing) extensions

This depends on how PHP was installed on your machine and what access you have. Here are some possibilities:

  • If this is a hosted server you are likely to have to ask the administrator or hosting company.
  • If PHP was compiled from source you will need to recompile, changing the 'configure' settings - see Compiling PHP from source.
  • If it was installed using packages (typically Linux) you can install the required package (see your Linux distribution's documentation)
  • 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.

.htaccess files

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

The file isn't always called .htaccess and may not work at all. Contact your server administrator to be sure

Settings are made by adding lines in one of two formats:

  • php_value name value
  • php_flag name on/off

Examples:

  • php_value memory_limit 128M
  • php_flag register_globals off

See also