Installation de l'extension php intl

Installation de l'extension php intl

par Fabrice LAURENT,
Nombre de réponses : 8

Bonjour,

Nous souhaitons mettre à jour notre Moodle 3.2 vers la version 3.4 mais il est indiqué dans les prérequis de la mise jour que l'extension PHP intl doit-être activée. Voici un détail sur l'environnement :

  • Windows 2012 R2 
  • PHP 7.0.9, 
  • Apache 2.4.23 
  • MySQL 5.0.12

Malgré l'activation de l'extension dans le fichier php.ini (extension=php_intl.dll) et l'essai de nombreuses "solutions" trouvées sur Internet nous restons avec cette extension non activée dans Moodle :

php_extensionintl

L'installation de l'extension optionnelle Intl de PHP est utilisée pour améliorer le support de l'internationalisation, par exemple pour les tris alphabétiques.

Vérifie

Si toutefois il pouvait y avoir une relation, je vous indique que nous avons parmi les contrôles "Environnement" réalisé par Moodle l'erreur suivante :

InformationRapportPluginStatut
check_mysql_file_format

unsupporteddbfileformat


Merci pour votre aide.

Moyenne des évaluations  -
En réponse à Fabrice LAURENT

Re: Installation de l'extension php intl

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Fabrice,

Est-ce que dans la page "Administration du site > Serveur > Info PHP", tu retrouves un bloc dédié à Intl ?

Capture « phpinfo, bloc intl »

Si ce n'est pas le cas, alors c'est que ce module n'est pas activé dans ton installation. Il faut rechercher de ce côté et non du côté de Moodle.

Quel est la distribution serveur que tu as installé ? Xamp ? Wamp ? Un autre ?
Dans cette même page de Moodle, tu dois trouver le chemin vers le fichier php.ini que tu dois modifier dans "Loaded Configuration File".

À bientôt,
Patrick

En réponse à Patrick Lemaire

Re: Installation de l'extension php intl

par Fabrice LAURENT,

Bonjour Patrick,

Merci pour votre réponse. Je ne trouve pas le bloc intl dans "Administration du site > Serveur > Info PHP"

La distribution server est xampp.

Voici le chemin du fichier php.ini :

Loaded Configuration File          D:\Moodle32\server\php\php.ini

Je joins le fichier php.ini si cela peut vous être utile. 

J'ai déjà copié les fichiers "icu*.dll" du dossier "D:\Moodle32\server\php" vers le dossier "D:\Moodle32\server\apache " puis relancer xamp.

Merci à vous.

A bientôt

Fabrice


En réponse à Fabrice LAURENT

Re: Installation de l'extension php intl

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Dans ton php.ini, je trouve étrange d'avoir 2 lignes concernant "php_intl.dll". Si je compare à mon installation, la ligne 848 est superflue. Tu peux conserver la 874.

De même, je pense qu'à force de "bidouiller" ce fichier de conf', la ligne 975, qui indique "intl.error_level = E_WARNING" peut être commentée, tout comme la 971, concernant "intl.default_locale = en_utf8". Ces deux paramètres ne sont pas nécessaires.

Il faudrait aussi vérifier que les droits sont suffisamment "ouverts" pour qu'Apache puisse accéder aux fichiers (dll notamment). Ainsi, vérifie que le groupe "Utilisateurs" possède des droits de "lecture et exécution".

Pour que ça fonctionne sur ma machine (Windows 7), j'ai été contraint d'installer "Redistribuable Visual C++ pour Visual Studio 2012" pour bénéficier de la "msvcp110.dll" qui n'était pas présente sur mon système, après avoir copié toutes les fameuses "icu*.dll" qui n'étaient pas au bon endroit (cf ce fil de discussion sur StackOverflow). Note que, contrairement à tous les forums/tutos, je ne fais pas confiance aux sites qui proposent de télécharger seulement la DLL qui te manque... On ne sait jamais ce qui peut être "livré gratuitement" avec cette librairie pensif

Tu pourrais également regarder ce qui s'écrit dans le journal de log d'Apache qui doit se trouver dans "D:\Moodle32\server\apache\logs\error.log". Ainsi tu pourrais trouver la cause possible du non chargement de la dll en question...

À bientôt,
Patrick

En réponse à Patrick Lemaire

Re: Installation de l'extension php intl

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

> Pour que ça fonctionne sur ma machine (Windows 7), j'ai été contraint d'installer "Redistribuable Visual C++ pour Visual Studio 2012" pour bénéficier de la "msvcp110.dll" qui n'était pas présente sur mon système, après avoir copié toutes les fameuses "icu*.dll" qui n'étaient pas au bon endroit (cf ce fil de discussion sur StackOverflow). Note que, contrairement à tous les forums/tutos, je ne fais pas confiance aux sites qui proposent de télécharger seulement la DLL qui te manque... On ne sait jamais ce qui peut être "livré gratuitement" avec cette librairie pensif

<mode troll=on>

Et c'est là que tu te dis qu'un serveur web sur Linux, c'est vraiment plus simple.

<mode troll=off>



En réponse à Fabrice LAURENT

Re: Installation de l'extension php intl

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Une chose m'étonne dans ton message : tu indiques utiliser Mysql  5.0.12.

Hors, Moodle 3.2 comme 3.4 nécessitent la version 5.5.31 minimum !

Je ne sais pas d’où tu tires tes informations d'environnement, mais il semble y avoir une différence entre ce qui est réellement utilisé par Moodle et ce que tu indiques...

Il peut parfois y avoir plusieurs versions qui co-existent, avec chacune son (ses) fichier(s)s de configuration, et il faut s'assurer de modifier les choses au bon endroit.

Séverin

En réponse à Séverin Terrier

Re: Installation de l'extension php intl

par Fabrice LAURENT,

Bonjour,

Désolé mais c'est une erreur de ma part j'utilise la version 10.1.16 :

databasemariadb (5.5.5-10.1.16-MariaDB)OK

Merci

Fabrice

En réponse à Fabrice LAURENT

Re: Installation de l'extension php intl

par Fabrice LAURENT,

Bonjour a tous,

Merci à vous pour vos réponses, on se sent moins seul ! 

J'ai modifié mon fichier "php.ini" comme indiqué par Patrick, j'ai également installé "Redistribuable Visual C++ 2012" . Le groupe "Utilisateurs" a bien les droits en lecture et exécution sur le dossier PHP. 

Malgré les redémarrages xamp  l'extension n'est toujours pas activée. Je dois certainement oublié quelque chose ou avoir commis une erreur lors de l'installation mais je ne trouve pas. 

J'ai également télécharger la fameuse dll "php_intl.dll" sur le site php.net pour la remplacer sur le serveur et redémarrer xamp, même punition, ... même résultat.

Voici l'erreur trouvée dans le fichier log Apache :

PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\\Moodle32\\server\\php\\ext\\php_intl.dll' - %1 n\xef\xbf\xbdest pas une application Win32 valide.\r\n in Unknown on line 0

et la même dans le journal des Application Windows :

php[4720]

PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Moodle32\server\php\ext\php_intl.dll' - %1 n’est pas une application Win32 valide.

 (D:\Moodle32\server\php\php-win.exe -f D:/Moodle32/server/moodle/admin/cli/cron.php)

Je continue à chercher mais si vous avez encore des pistes je suis preneur. 

Merci à vous.

Fabrice