PHP

De MoodleDocs
Aller à :navigation, rechercher

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 requiert PHP 7.0 ou une version ultérieure
  • Moodle 3.7 requiert PHP 7.1 ou une version ultérieure
  • Moodle 3.9 requiert PHP 7.2 jusqu'à 7.4
  • Moodle 3.11 et 4.0 requièrent PHP 7.3 jusqu'à 8.0
  • Moodle 4.1 (LTS) requiert PHP 7.4 jusqu'à 8.1
  • Moodle 4.2 requiert PHP 8.0 jusqu'à 8.1
  • Moodle 4.3 requiert PHP 8.0 jusqu'à 8.2.x

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.

Erreurs HTTP_RAW_POST_DATA

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

Extensions et bibliothèques PHP

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