类似于这个问题: gd2不显示在phpinfo中,显示在php -i中
我有与mbstring
相同的问题。 我启用它在我的php.ini
(这是唯一的php.ini
在我的整个系统 – 是的,我检查和双重检查! ),但是当我打开我的Apache的phpinfo
,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都加载完全相同的配置,包括所有扩展(这正是我想要的)。