mbssortingng manquant dans phpinfo mais activé dans php.ini

Semblable à cette question: gd2 ne s’affiche pas dans phpinfo, est affiché dans php -i

J’ai le même problème avec mbssortingng . Je l’ai activé dans mon php.ini (qui est le seul php.ini sur tout mon système – et oui, j’ai vérifié et vérifié que! ), Mais quand j’ouvre phpinfo sur mon Apache, mbssortingng est absent. Si je fais php -i , toutes les données mbssortingng apparaissent bien.

Apache ( phpinfo.php )

 Configuration File (php.ini) Path C:\Windows Loaded Configuration File F:\PHP\5.4\php.ini Scan this dir for additional .ini files (none) Additional .ini files parsed (none) 

Apache ( index.php )

 Fatal error: Call to undefined function mb_get_info() in F:\Apache\httpd-2.4\htdocs\index.php on line 2 

PHP CLI:

 F:\Apache\httpd-2.4\htdocs> php --ini Configuration File (php.ini) Path: C:\Windows Loaded Configuration File: F:\PHP\5.4\php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none) F:\Apache\httpd-2.4\htdocs> php index.php array(14) { ["internal_encoding"]=> ssortingng(10) "ISO-8859-1" ["http_output"]=> ssortingng(4) "pass" ["http_output_conv_mimetypes"]=> ssortingng(31) "^(text/|application/xhtml\+xml)" ["func_overload"]=> int(0) ["func_overload_list"]=> ssortingng(11) "no overload" ["mail_charset"]=> ssortingng(5) "UTF-8" ["mail_header_encoding"]=> ssortingng(6) "BASE64" ["mail_body_encoding"]=> ssortingng(6) "BASE64" ["illegal_chars"]=> int(0) ["encoding_translation"]=> ssortingng(3) "Off" ["language"]=> ssortingng(7) "neutral" ["detect_order"]=> array(2) { [0]=> ssortingng(5) "ASCII" [1]=> ssortingng(5) "UTF-8" } ["substitute_character"]=> int(63) ["ssortingct_detection"]=> ssortingng(3) "Off" } 

Que se passe-t-il ici? Bugs dans apache / phpinfo() ?

Le problème est que, lorsque PHP est chargé via apache, le extension_dir est apparemment lu par rapport au répertoire racine du serveur apache .

Mais, à partir de la ligne de commande, il est lu par rapport au répertoire racine de PHP .

Ainsi, bien que ce soit le même php.ini chargé, parce que je définis le répertoire d’extension au lieu de F:\PHP\5.4\ext , apache (ou plutôt: PHP) l’a recherché dans F:\Apache\2.4\ext , qu’il n’a pas trouvé pour des raisons évidentes.

Définir l’ extension_dir dans un dossier absolu a résolu le problème. Maintenant, apache et cmd chargent exactement la même configuration, y compris toutes les extensions (ce qui est exactement ce que je voulais).