« PHP » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
(→‎See also : Ajout lien vers page en anglais)
Aucun résumé des modifications
Ligne 6 : Ligne 6 :
** Moodle 3.1 et les versions antérieures ne prennent pas en charge PHP 7.1 ou ultérieur (cela signifie qu'il n'y a actuellement aucune combinaison de versions de Moodle et de PHP qui est encore prise en charge avant Moodle 3.4);
** Moodle 3.1 et les versions antérieures ne prennent pas en charge PHP 7.1 ou ultérieur (cela signifie qu'il n'y a actuellement aucune combinaison de versions de Moodle et de PHP qui est encore prise en charge avant Moodle 3.4);
* Moodle 3.4 et Moodle 3.5 '''requièrent''' PHP 7.0 ou PHP 7.1 ou PHP 7.2
* Moodle 3.4 et Moodle 3.5 '''requièrent''' PHP 7.0 ou PHP 7.1 ou PHP 7.2
* Moodle 3.6 '''requires''' PHP 7.0 or later
* Moodle 3.6 '''requière''' PHP 7.0 ou une version ultérieure
* Moodle 3.7 '''requires''' PHP 7.1 or later
* Moodle 3.7 '''requière''' PHP 7.1 ou une version ultérieure
* Moodle 3.9 '''requires''' PHP 7.2 to 7.4
* Moodle 3.9 '''requière''' PHP 7.2 jusqu'à 7.4
* Moodle 3.11 and 4.0 '''requires''' PHP 7.3 to 8.0
* Moodle 3.11 et 4.0 '''requièrent''' PHP 7.3 jusqu'à 8.0
* Moodle 4.1 (LTS) '''requires''' PHP 7.4 to 8.1
* Moodle 4.1 (LTS) '''requière''' PHP 7.4 jusqu'à 8.1
* Moodle 4.2 '''requires''' PHP 8.0 to 8.1
* Moodle 4.2 '''requière''' PHP 8.0 jusqu'à 8.1
==PHP Settings==
==Paramètres de PHP==
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.  
Vérifiez ces paramètres dans votre fichier php.ini ou .htaccess (si vous utilisez Apache). Pour les paramètres qui utilisent ON/OFF comme valeurs, vous pouvez substituer 1 pour ON et 0 pour OFF si vous préférez. Si vous modifiez php.ini, n'oubliez pas de redémarrer le serveur.
* ''memory_limit'' needs to be at least 96M (although some functions may not work if this low). Moodle will refuse to install if lower. 128M is recommended. Large systems may need an even higher setting.
* ''memory_limit'' doit être au moins 96M (certaines fonctions peuvent ne pas fonctionner si la limite est trop basse). Moodle refusera de s'installer si elle est inférieure. 128M est recommandé. Les systèmes à fort volume peuvent nécessiter un réglage encore plus élevé.
* ''session.save_handler'' needs to be set to FILES.
* ''session.save_handler'' doit être défini à FILES.
* ''magic_quotes_runtime'' needs to be OFF. (DEPRECATED in PHP 5.3.0, and REMOVED as of PHP 7.0.0.)
* ''magic_quotes_runtime'' doit être défini à OFF. (Déprécié en PHP 5.3.0, et supprimé à partir de PHP 7.0.0.)
* ''file_uploads'' needs to be ON.
* ''file_uploads'' doit être défini à ON.
* ''session.auto_start'' needs to be OFF.
* ''session.auto_start'' doit être défini à OFF.
* The temp folder must be defined and writeable by your webserver user
* Le dossier temporaire doit être défini et accessible en écriture par l'utilisateur de votre serveur web.
* Check the error display/logging section. Make sure the settings are appropriate for your server use.
* Vérifiez la section display/logging des erreurs. Assurez-vous que les paramètres sont appropriés pour l'utilisation de votre serveur.
* ''post_max_size'' and ''upload_max_filesize'' restrict the maximum file size that can be uploaded.
* ''post_max_size'' et ''upload_max_filesize'' limitent la taille maximale des fichiers pouvant être chargés sur le serveur.
* Check the ''[mail function]'' and database section (for your chosen database) to make sure they match your server configuration.
* Vérifiez la section ''[mail function]'' et la section "database" (pour votre base de données choisie) pour vous assurer qu'elles correspondent à la configuration de votre serveur.
==HTTP_RAW_POST_DATA errors==
==HTTP_RAW_POST_DATA errors==
Some users are experiencing $HTTP_RAW_POST_DATA related errors, when establishing connection between MNET servers or making AJAX web services requests.
Certains utilisateurs rencontrent des erreurs liées à $HTTP_RAW_POST_DATA lors de l'établissement d'une connexion entre les serveurs MNET ou lors de requêtes de services web AJAX.
<pre>
<pre>
Request for server name returned empty response
Request for server name returned empty response
Ligne 31 : Ligne 31 :
     line 115 of /admin/mnet/peers.php: call to mnet_get_public_key()
     line 115 of /admin/mnet/peers.php: call to mnet_get_public_key()
</pre>
</pre>
These errors are affecting installations running moodle on PHP 5.6 version and it's a PHP bug on the '''always_populate_raw_post_data''' setting the default value to 0.
Ces erreurs affectent les installations exécutant Moodle sur PHP 5.6 et c'est un bogue PHP lié au paramètre '''always_populate_raw_post_data''' dont la valeur par défaut est 0.


To avoid the error messages above, please change the value following setting on your php.ini file:
Pour éviter les messages d'erreur ci-dessus, veuillez changer la valeur suivante dans votre fichier php.ini :
* '''always_populate_raw_post_data''' should be changed to '''-1'''.
* '''always_populate_raw_post_data''' doit être changé en '''-1'''.
For more information about this bug, see: https://bugs.php.net/bug.php?id=66763
Pour plus d'informations sur ce bogue, voir : https://bugs.php.net/bug.php?id=66763
==Finding the correct php.ini==
==Trouver le bon 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 below. The path of the php.ini file is a few lines down in the top section.  
Il n'est pas toujours évident de savoir où se trouve le fichier php.ini, vous pourriez même en trouver plusieurs. Pour être sûr de configurer le bon, exécutez 'phpinfo' - voir ci-dessous. Le chemin du fichier php.ini se trouve quelques lignes plus bas dans la section supérieure.


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:
Notez que si vous utilisez PHP en ligne de commande (CLI) pour exécuter cron (ou autre chose), il peut être configuré avec un fichier php.ini ''différent''. Pour vérifier, exécutez la commande suivante :
<pre>
<pre>
php -i | grep php.ini
php -i | grep php.ini
</pre>
</pre>
==PHP Extensions and libraries==
==PHP Extensions et bibliothèques==
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.
Les extensions PHP suivantes sont requises ou recommandées (certaines, comme iconv, ctype et tokenizer, sont désormais incluses par défaut dans PHP). D'autres devront être installées ou sélectionnées.
* The '''iconv''' extension is required.
* L'extension '''iconv''' est requise.
* The '''mbstring''' extension is required.
* L'extension '''mbstring''' est requise.
* The '''curl''' extension is required (required for networking and web services).
* L'extension '''curl''' est requise (pour le réseau et les web services).
* The '''openssl''' extension is recommended (required for networking and web services).
* L'extension '''openssl''' est recommandée (requise pour le réseau et les web services).
* The '''tokenizer''' extension is recommended.
* L'extension '''tokenizer''' est recommandée.
* The '''xmlrpc''' extension is recommended (required for networking and web services).
* L'extension '''xmlrpc''' est recommandée (requise pour le réseau et les web services).
* The '''soap''' extension is recommended (required for web services).
* L'extension '''soap''' est recommandée (requise pour certains web services).
* The '''ctype''' extension is required.
* L'extension '''ctype''' est requise.
* The '''zip''' extension is required.
* L'extension '''zip''' est requise.
* The '''gd''' extension is required.
* L'extension '''gd''' est requise.
* The '''simplexml''' extension is required.
* L'extension '''simplexml''' est requise.
* The '''spl''' extension is required.
* L'extension '''spl''' est requise.
* The '''pcre''' extension is required.
* L'extension '''pcre''' est requise.
* The '''dom''' extension is required.
* L'extension '''dom''' est requise.
* The '''xml''' extension is required.
* L'extension '''xml''' est requise.
* The '''intl''' extension is required.
* L'extension '''intl''' est requise.
* The '''json''' extension is required.
* L'extension '''json''' est requise.
* '''The appropriate extension for your chosen database is also required.'''
* ''''L'extension appropriée pour votre base de données choisie est également requise.'''


* 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).
* D'autres extensions PHP peuvent être nécessaires pour prendre en charge des fonctionnalités Moodle facultatives, en particulier l'authentification externe et/ou l'inscription (par exemple, l'extension LDAP pour l'authentification LDAP et l'extension sockets pour le serveur de chat).
==Installing (missing) extensions==
==Installation des extensions manquantes==
This depends on how PHP was installed on your machine and what access you have. Here are some possibilities:
Cela dépend de la manière dont PHP a été installé sur votre serveur et des droits d'accès dont vous disposez. Voici quelques possibilités :
* If this is a hosted server you are likely to have to ask the administrator or hosting company.  
* Si c'est un serveur hébergé, il est probable que vous deviez demander à l'administrateur ou à la société d'hébergement.  
* If PHP was compiled from source you will need to recompile, changing the 'configure' settings - see [[Compiling PHP from source]].
* Si PHP a été compilé à partir de la source, vous devrez le recompiler en modifiant les paramètres de 'configure' - consultez [[Compiling PHP from source]].
* If it was installed using packages (typically Linux) you can install the required package (see your Linux distribution's documentation)
* Si PHP a été installé à l'aide de packages (typiquement sur Linux), vous pouvez installer le package requis (consultez la documentation de votre distribution Linux).
* If you are using Windows you just need to uncomment the appropriate DLL files in php.ini
* Si vous utilisez Windows, il vous suffit de décommenter les fichiers DLL appropriés dans php.ini.
After making any changes or additions, don't forget to re-start your web server.
Après avoir apporté des modifications ou des ajouts, n'oubliez pas de redémarrer votre serveur web.
== .htaccess files ==
==Fichiers .htaccess==
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).  
Si vous n'avez pas accès au fichier php.ini ou s'il y a des paramètres qui rentrent en conflit avec d'autres applications PHP sur le même serveur, vous pouvez modifier les paramètres PHP dans un fichier .htaccess. Celui-ci doit être placé à la 'racine' de votre installation Moodle (c'est-à-dire au même endroit que le fichier config.php).


'''The file isn't always called .htaccess and may not work at all. Contact your server administrator to be sure'''
''''Le fichier n'est pas toujours appelé .htaccess et pourrait ne pas fonctionner. Contactez votre administrateur de serveur pour vous assurer.'''


Settings are made by adding lines in one of two formats:
Les paramètres sont définis en ajoutant des lignes dans l'un des deux formats :
* php_value ''name value''
* php_value ''name value''
* php_flag ''name on/off''
* php_flag ''name on/off''
Examples:
Exemples:
* '''php_value memory_limit 128M'''
* '''php_value memory_limit 128M'''
* '''php_flag register_globals off'''
* '''php_flag register_globals off'''
==PHP info==
==PHP info==
The phpinfo display contains information about the configuration of your PHP installation. This is useful for checking:
L'affichage du phpinfo contient des informations sur la configuration de votre installation PHP. Cela est utile pour vérifier :
* that your PHP installation meets Moodle's system requirements.
* que votre installation PHP répond aux exigences de la version de Moodle utilisée.
* the values that are currently applied to your server's PHP install, e.g. File upload limits
* les valeurs actuellement appliquées à l'installation PHP de votre serveur, par exemple, les limites de chargement de fichiers.
* that you have installed the required modules needed for Moodle to work, e.g. the LDAP module for LDAP authentication.
* que vous avez installé les modules requis nécessaires au fonctionnement de Moodle, par exemple, le module LDAP pour l'authentification LDAP.
=== Displaying phpinfo in Moodle===
===Affichage de phpinfo dans Moodle===
An administrator can find PHP info in ''Settings > Site administration > Server > PHP info''.
Un administrateur peut trouver les informations PHP dans ''Administration du site > Serveur > Info PHP''.
=== Displaying phpinfo outside of Moodle ===
===Affichage de phpinfo en dehors de Moodle===
To view the phpinfo information:
Pour consulter les informations phpinfo :
* Create a file called info.php using your text editor, containing this single line:
*Créez un fichier appelé info.php à l'aide de votre éditeur de texte, contenant cette unique ligne :
  <code php>
  <code php>
  <?php phpinfo(); ?>
  <?php phpinfo(); ?>
  </code>
  </code>
* Save this file as info.php
* Enregistrez ce fichier sous le nom info.php.
* Upload this file into the root web accessible folder on your server.
* Chargez ce fichier dans le dossier racine de votre serveur web.
* Now open this file in your browser. For example <nowiki>http://<server-name>/info.php</nowiki>.
* Ouvrez maintenant ce fichier dans votre navigateur. Par exemple, <nowiki>http://<nom-du-serveur>/info.php</nowiki>.
==Voir aussi==
==Voir aussi==
*[[Compiling PHP from source]]
*[[Compiling PHP from source]]
* [https://docs.moodle.org/dev/Moodle_and_PHP7 Moodle and PHP7] in the developers documentation
* [https://docs.moodle.org/dev/Moodle_and_PHP7 Moodle and PHP7] in the developers documentation
*http://www.php.net/ - the PHP web site
*http://www.php.net/ - Le site web de PHP
*http://php.iis.net/ - Microsoft PHP Installer for IIS
*http://php.iis.net/ - Le site de l'installateur Microsoft PHP pour IIS
* [[MoodleDocs:Style_guide#PHP_syntax_highlighting]] to highlight PHP syntax
* [[MoodleDocs:Style_guide#PHP_syntax_highlighting]] pour mettre en surbrillance la syntaxe PHP
* [[Code syntax highlighting]] that uses the GeSHi (Generic Syntax Highlighter) filter.  
* [[Code syntax highlighting]] qui utilise le filtre GeSHi (Generic Syntax Highlighter) filter.  


[[en:PHP]]
[[en:PHP]]
[[de:PHP]]
[[de:PHP]]
[[es:PHP]]
[[es:PHP]]

Version du 10 novembre 2023 à 23:32

Remarque : la traduction de cette page n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.


PHP est le langage de script utilisé pour développer Moodle. Il est intégré à votre serveur web. Le serveur web détecte les pages PHP (par leur extension) et les envoie à PHP pour exécution. PHP doit être installé et configuré correctement pour que Moodle fonctionne efficacement (ou tout simplement).

Versions de PHP

  • Moodle 3.0.1 et les versions ultérieures prennent en charge PHP 7, cependant
    • Moodle 3.1 et les versions antérieures ne prennent pas en charge PHP 7.1 ou ultérieur (cela signifie qu'il n'y a actuellement aucune combinaison de versions de Moodle et de PHP qui est encore prise en charge avant Moodle 3.4);
  • Moodle 3.4 et Moodle 3.5 requièrent PHP 7.0 ou PHP 7.1 ou PHP 7.2
  • Moodle 3.6 requière PHP 7.0 ou une version ultérieure
  • Moodle 3.7 requière PHP 7.1 ou une version ultérieure
  • Moodle 3.9 requière PHP 7.2 jusqu'à 7.4
  • Moodle 3.11 et 4.0 requièrent PHP 7.3 jusqu'à 8.0
  • Moodle 4.1 (LTS) requière PHP 7.4 jusqu'à 8.1
  • Moodle 4.2 requière PHP 8.0 jusqu'à 8.1

Paramètres de PHP

Vérifiez ces paramètres dans votre fichier php.ini ou .htaccess (si vous utilisez Apache). Pour les paramètres qui utilisent ON/OFF comme valeurs, vous pouvez substituer 1 pour ON et 0 pour OFF si vous préférez. Si vous modifiez php.ini, n'oubliez pas de redémarrer le serveur.

  • memory_limit doit être au moins 96M (certaines fonctions peuvent ne pas fonctionner si la limite est trop basse). Moodle refusera de s'installer si elle est inférieure. 128M est recommandé. Les systèmes à fort volume peuvent nécessiter un réglage encore plus élevé.
  • session.save_handler doit être défini à FILES.
  • magic_quotes_runtime doit être défini à OFF. (Déprécié en PHP 5.3.0, et supprimé à partir de PHP 7.0.0.)
  • file_uploads doit être défini à ON.
  • session.auto_start doit être défini à OFF.
  • Le dossier temporaire doit être défini et accessible en écriture par l'utilisateur de votre serveur web.
  • Vérifiez la section display/logging des erreurs. Assurez-vous que les paramètres sont appropriés pour l'utilisation de votre serveur.
  • post_max_size et upload_max_filesize limitent la taille maximale des fichiers pouvant être chargés sur le serveur.
  • Vérifiez la section [mail function] et la section "database" (pour votre base de données choisie) pour vous assurer qu'elles correspondent à la configuration de votre serveur.

HTTP_RAW_POST_DATA errors

Certains utilisateurs rencontrent des erreurs liées à $HTTP_RAW_POST_DATA lors de l'établissement d'une connexion entre les serveurs MNET ou lors de requêtes de services web AJAX.

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

Ces erreurs affectent les installations exécutant Moodle sur PHP 5.6 et c'est un bogue PHP lié au paramètre always_populate_raw_post_data dont la valeur par défaut est 0.

Pour éviter les messages d'erreur ci-dessus, veuillez changer la valeur suivante dans votre fichier php.ini :

  • always_populate_raw_post_data doit être changé en -1.

Pour plus d'informations sur ce bogue, voir : https://bugs.php.net/bug.php?id=66763

Trouver le bon php.ini

Il n'est pas toujours évident de savoir où se trouve le fichier php.ini, vous pourriez même en trouver plusieurs. Pour être sûr de configurer le bon, exécutez 'phpinfo' - voir ci-dessous. Le chemin du fichier php.ini se trouve quelques lignes plus bas dans la section supérieure.

Notez que si vous utilisez PHP en ligne de commande (CLI) pour exécuter cron (ou autre chose), il peut être configuré avec un fichier php.ini différent. Pour vérifier, exécutez la commande suivante :

php -i | grep php.ini

PHP Extensions et bibliothèques

Les extensions PHP suivantes sont requises ou recommandées (certaines, comme iconv, ctype et tokenizer, sont désormais incluses par défaut dans PHP). D'autres devront être installées ou sélectionnées.

  • L'extension iconv est requise.
  • L'extension mbstring est requise.
  • L'extension curl est requise (pour le réseau et les web services).
  • L'extension openssl est recommandée (requise pour le réseau et les web services).
  • L'extension tokenizer est recommandée.
  • L'extension xmlrpc est recommandée (requise pour le réseau et les web services).
  • L'extension soap est recommandée (requise pour certains web services).
  • L'extension ctype est requise.
  • L'extension zip est requise.
  • L'extension gd est requise.
  • L'extension simplexml est requise.
  • L'extension spl est requise.
  • L'extension pcre est requise.
  • L'extension dom est requise.
  • L'extension xml est requise.
  • L'extension intl est requise.
  • L'extension json est requise.
  • 'L'extension appropriée pour votre base de données choisie est également requise.
  • D'autres extensions PHP peuvent être nécessaires pour prendre en charge des fonctionnalités Moodle facultatives, en particulier l'authentification externe et/ou l'inscription (par exemple, l'extension LDAP pour l'authentification LDAP et l'extension sockets pour le serveur de chat).

Installation des extensions manquantes

Cela dépend de la manière dont PHP a été installé sur votre serveur et des droits d'accès dont vous disposez. Voici quelques possibilités :

  • Si c'est un serveur hébergé, il est probable que vous deviez demander à l'administrateur ou à la société d'hébergement.
  • Si PHP a été compilé à partir de la source, vous devrez le recompiler en modifiant les paramètres de 'configure' - consultez Compiling PHP from source.
  • Si PHP a été installé à l'aide de packages (typiquement sur Linux), vous pouvez installer le package requis (consultez la documentation de votre distribution Linux).
  • Si vous utilisez Windows, il vous suffit de décommenter les fichiers DLL appropriés dans php.ini.

Après avoir apporté des modifications ou des ajouts, n'oubliez pas de redémarrer votre serveur web.

Fichiers .htaccess

Si vous n'avez pas accès au fichier php.ini ou s'il y a des paramètres qui rentrent en conflit avec d'autres applications PHP sur le même serveur, vous pouvez modifier les paramètres PHP dans un fichier .htaccess. Celui-ci doit être placé à la 'racine' de votre installation Moodle (c'est-à-dire au même endroit que le fichier config.php).

'Le fichier n'est pas toujours appelé .htaccess et pourrait ne pas fonctionner. Contactez votre administrateur de serveur pour vous assurer.

Les paramètres sont définis en ajoutant des lignes dans l'un des deux formats :

  • php_value name value
  • php_flag name on/off

Exemples:

  • php_value memory_limit 128M
  • php_flag register_globals off

PHP info

L'affichage du phpinfo contient des informations sur la configuration de votre installation PHP. Cela est utile pour vérifier :

  • que votre installation PHP répond aux exigences de la version de Moodle utilisée.
  • les valeurs actuellement appliquées à l'installation PHP de votre serveur, par exemple, les limites de chargement de fichiers.
  • que vous avez installé les modules requis nécessaires au fonctionnement de Moodle, par exemple, le module LDAP pour l'authentification LDAP.

Affichage de phpinfo dans Moodle

Un administrateur peut trouver les informations PHP dans Administration du site > Serveur > Info PHP.

Affichage de phpinfo en dehors de Moodle

Pour consulter les informations phpinfo :

  • Créez un fichier appelé info.php à l'aide de votre éditeur de texte, contenant cette unique ligne :

<?php phpinfo(); ?>

  • Enregistrez ce fichier sous le nom info.php.
  • Chargez ce fichier dans le dossier racine de votre serveur web.
  • Ouvrez maintenant ce fichier dans votre navigateur. Par exemple, http://<nom-du-serveur>/info.php.

Voir aussi