PHP: Unterschied zwischen den Versionen

Wechseln zu: Navigation, Suche

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

(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…“)
 
 
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 laufen kann.  
  
Zeile 24: Zeile 25:
  
 
==Die richtige ''php.ini'' Datei finden==
 
==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 ''[[Einstellungen-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==
 
==PHP-Erweiterungen und PHP-Bibliotheken==
 
Folgende PHP-Erweiterungen und PHP-Bibliotheken werden für die verschiedenen Moodle-Versionen benötigt bzw. empfohlen:
 
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
+
* '''iconv''' - erforderlich
* '''mbstring''' - wird für Multi-Byte-Zeichenketten-Behandlung benötigt und ab Moodle 1.6 empfohlen
+
* '''mbstring''' - empfohlen
* '''iconv''' wird ab Moodle 1.6 empfohlen
+
* '''curl''' - erforderlich für [[MNet|Netzwerk]] und [[Webservices]]
* '''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
+
* '''openssl''' empfohlen (erforderlich für [[MNet|Netzwerk]] und [[Webservices]])
* '''pgsql''' - diese Pgsql-Erweiterung ist Voraussetzung, wenn man eine [[Moodle-Datenbank|PostgreSQL-Datenbank]] benutzen möchte
+
* '''tokenizer''' - empfohlen
* '''zlib''' - diese Erweiterung ist Voraussetzung für die zip-/unzip-Funktionalität
+
* '''xmlrpc''' - empfohlen (erforderlich für [[MNet|Netzwerk]] und [[Webservices]])
* '''pdo''' und '''pdo_sqlite''' - Voraussetzung bei Verwendung einer SQLite 3 Datenbank (wird ab Moodle 2.0, aber nur experimetell, also als Testversion, unterstützt)
+
* '''soap''' - empfohlen (erforderlich für [[Webservices]])
* '''curl''' - empfohlen ab Moodle 1.8
+
* '''ctype''' - erforderlich
* '''tokenizer''' - empfohlen ab Moodle 1.8
+
* '''zip''' - erforderlich
* '''curl''' und '''openssl''' - Voraussetzung für die [[Moodle-Netzwerk|Moodle-Netzwerk-Funktionalität]] (ab Moodle 1.8)
+
* '''gd''' - empfohlen (erforderlich für die Manipulation von Grafiken)
* '''xmlrpc''' - Voraussetzung für die [[Moodle-Netzwerk|Moodle-Netzwerk-Funktionalität]] (ab Moodle 1.8)
+
* '''simplexml''' - erforderlich
* '''ctype''' - empfohlen ab Moodle 1.8
+
* '''spl''' - erforderlich
* 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).
+
* '''pcre''' - erforderlich
 
+
* '''dom''' - erforderlich
 
+
* '''xml''' - erforderlich
=== Speicher ===
+
* '''intl''' - empfohlen
'''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.
+
* '''json''' - erforderlich
 
+
* '''geeignete Erweiterung für Ihren Datenbanktyp''' - erforderlich, z.B. '''mysql''' für den MySQL-Datenbankserver oder '''pgsql''' für den PostgreSQL-Datenbankserver
==PHP Version==
+
* 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.
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:
 
<pre>
 
php -i | grep php.ini
 
</pre>
 
 
 
==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 ==
+
==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. <code>apt-get install, yum install</code>)
 +
*Wenn Sie einen Windowsserver nutzen, entfernen Sie die Auskommentierung der jeweiligen DLL Bibliotheken in der ''php.ini'' Datei.
  
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).  
+
== .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).
  
'''The file isn't always called .htaccess and may not work at all. Contact your server administrator to be sure'''
+
'''Diese Datei heißt nicht immer ''.htaccess'' und manchmal funktioniert sie auch gar nicht. Bei Problemen wenden Sie sich an den Server-Administrator'''.
  
Settings are made by adding lines in one of two formats:
+
Die Eintragungen können in zwei Formen erfolgen:
 
* php_value ''name value''
 
* php_value ''name value''
 
* php_flag ''name on/off''
 
* php_flag ''name on/off''
  
Examples:
+
'''Beispiele''':
 
* '''php_value memory_limit 128M'''
 
* '''php_value memory_limit 128M'''
 
* '''php_flag register_globals off'''
 
* '''php_flag register_globals off'''
  
==See also==
+
==Siehe auch==
 
*[[PHP FAQ]]
 
*[[PHP FAQ]]
*[[Installing Moodle]]
+
*[[Installation von Moodle]]
*[[Performance]]
+
*[[Geschwindigkeit]]
 +
*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
 

Aktuelle Version vom 24. Mai 2012, 10:53 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 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

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