Подобно этому вопросу: gd2 не отображается в phpinfo, это отображается в php -i
У меня такая же проблема с mbstring
. Я включил его в своем php.ini
(который является единственным php.ini
во всей моей системе - и да, я проверил и дважды проверил это! ), но когда я открываю phpinfo
на своем Apache, 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()
?
1 ответ
Проблема в том, что когда PHP загружается через apache, extension_dir
явно читается относительно корневого каталога сервера apache .
Но, начиная с командной строки, он читается относительно корневого каталога PHP .
Таким образом, несмотря на то, что он был загружен таким же образом, как php.ini
, поскольку я установил каталог расширения как ext
вместо F:\PHP\5.4\ext
, apache (или, скорее, PHP) искал его в F:\Apache\2.4\ext
, который не нашел по понятным причинам.
Установка extension_dir
на абсолютную папку решила проблему. Теперь apache и cmd загружают одну и ту же конфигурацию, включая все расширения (именно так я и хотел).
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
phpinfo
() на своем веб-сервере, и он сообщит вам, где находится этот файл (ы) .ini.phphinfo()
показывает мне, прямо в начале вопроса. Это тот же самый файл, который использует CLI.