message d'erreur apres nouvelle installation sur nouveau serveur

message d'erreur apres nouvelle installation sur nouveau serveur

par ces moce,
Nombre de réponses : 1
Bonjour,

Lorsque j'essaye d'ajouter un utilisateur ou créer un cours par exemple j'obtiens l'erreur suivante:

Fatal error: Cannot redeclare _pear_call_destructors() (previously declared in /usr/share/php/PEAR.php:773) in /var/www/voilas.com_www/_home/site/html/supersite/lib/pear/PEAR.php on line 790


J'ai trouvé la réponse suivante mais je ne comprends pas (trop technique pour moi)

Qqn peut il m'aider?

http://tracker.moodle.org/browse/MDL-9936
Moyenne des évaluations  -
En réponse à ces moce

Re: message d'erreur apres nouvelle installation sur nouveau serveur

par Valery Fremaux,
Au vu du message d'erreur, le serveur n'est pas configuré de manière correcte.

Il semble que l'installation des paquetages PHP aient intégrés nativement des paquets PEAR dans sa compilation. C'est une décision de l'administrateur système.

Les paquets PEAR sont donc chargés dans PHP avant même que les scripts de Moodle commencent à jouer. Lorsque Moodle essaye de charger ses propres librairies PEAR, les fonctions qui y sont dedans sont déjà déclarées dans PHP et ce dernier déteste qu'on déclare deux fois une fonction.

L'astuce décrite dans le tracker permet de reléguer l'endroit où Moodle peut trouver les fichiers à inclure par des "include" ou des "require" DERRIERE les endroits connus par le moteur PHP lui-même.

Ainsi, lorsque Moodle essaiera d"inclure ces fichiers, les mêmes fichiers de la librairie système répondront d'abord. L'usage des require_once et des include_once est alors très important : puisque les fichiers PEAR système sont déjà chargés et qu'ils sont reconnus comme répondant correctement en lieu et place des fichiers demandés par Moodle, ces dernier ne seront pas chargés à nouveau, et alors plus de conflit...