phpinfo中缺lessmbstring,但在php.ini中启用

类似于这个问题: gd2不显示在phpinfo中,显示在php -i中

我有与mbstring相同的问题。 我启用它在我的php.ini (这是唯一的php.ini 在我的整个系统 – 是的,我检查双重检查! ),但是当我打开我的Apachephpinfo ,mbstring丢失。 如果我做php -i ,所有的mbstring数据都很好地显示出来。

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"]=> string(10) "ISO-8859-1" ["http_output"]=> string(4) "pass" ["http_output_conv_mimetypes"]=> string(31) "^(text/|application/xhtml\+xml)" ["func_overload"]=> int(0) ["func_overload_list"]=> string(11) "no overload" ["mail_charset"]=> string(5) "UTF-8" ["mail_header_encoding"]=> string(6) "BASE64" ["mail_body_encoding"]=> string(6) "BASE64" ["illegal_chars"]=> int(0) ["encoding_translation"]=> string(3) "Off" ["language"]=> string(7) "neutral" ["detect_order"]=> array(2) { [0]=> string(5) "ASCII" [1]=> string(5) "UTF-8" } ["substitute_character"]=> int(63) ["strict_detection"]=> string(3) "Off" } 

这里发生了什么? 在apache / phpinfo()错误?

问题是,当通过apache加载PHP时, extension_dir显然是相对于apache服务器根目录读取的。

但是,从命令行开始,它是相对于PHP根目录而言的

因此,尽管它是相同的加载php.ini ,因为我设置扩展目录为ext而不是F:\PHP\5.4\ext ,apache(或者说:PHP)在F:\Apache\2.4\ext搜索它,它没有找到明显的原因。

extension_dir设置为绝对文件夹解决了问题。 现在Apache和CMD都加载完全相同的配置,包括所有扩展(这正是我想要的)。