2015-12-14 8 views
1

Мне нужно получить PHP 5.4 (32 бит, TS) с помощью mbstring, работающей с Apache 2.4 (32 бит) в Windows. В моей httpd.conf я установил это:PHP mbstring не работает с Apache в Windows

PHPIniDir "c:/php54" 
LoadModule php5_module "c:/php54/php5apache2_4.dll" 
AddHandler application/x-httpd-php .php 

И в моем php.ini:

extension_dir = "ext" 
... 
extension=php_mbstring.dll 

Теперь, когда я выполнить php -m он правильно говорит, что загружается MBstring:

... 
libxml 
mbstring 
mcrypt 
... 

И php -i выплевывает раздел о mbstring:

mbstring 

Multibyte Support => enabled 
Multibyte string engine => libmbfl 
HTTP input encoding translation => disabled 
libmbfl version => 1.3.2 
... 

Но, когда у меня есть простой index.php с <?php phpinfo(); ?>, нет слова о mbstring, хотя он говорит, что использовался правильный php.ini.

Когда я изменить index.php к <?php echo mb_convert_case("hello world", MB_CASE_UPPER); ?> ошибок с ней

Fatal error: Call to undefined function mb_convert_case() in C:\Apache24x86\htdocs\index.php on line 1 

я могу запустить тот же сценарий с PHP CLI php index.php и правильно печатает HELLO WORLD.

Почему mbstring работает в php.exe, но не в Apache? Конечно, я многократно перезапускал Apache и даже весь мой компьютер.

+2

Возможно, этот ответ может помочь вам: http://stackoverflow.com/a/25432880/5297359 – swidmann

+0

Веб-интерфейс SAPI и CLI SAPI обычно имеют разные файлы php.ini, вам необходимо убедиться, что вы изменили подходящий ... если вы используете 'php -m' из командной строки и видите, что он установлен, то вы, вероятно, только включили его для CLI SAPI –

+0

Возможно, у вас есть другой файл конфигурации, загружаемый для CLI, как и для веб-сервера. Также вам необходимо перезапустить веб-сервер, чтобы ряд изменений конфигурации вступил в силу. Посмотрите на часть ini-файла phpinfo как с командной строки, так и с страницы phpinfo, которую вы установили. – GordonM

ответ

1

У меня была такая же проблема, и я решил его с помощью CMD команды

  1. Выключить все Апач услуги
  2. Запуск CMD от имени администратора
  3. Перейти к бен папке апача, в моем случае с помощью команды cd C:\Apache24\bin
  4. создать символическую ссылку с файлом php.ini с помощью команды bin>mklink php.ini C:\php\php.ini

Пример:

cmd example

Я надеюсь, что это поможет вам решить вашу проблему.

+0

У меня было та же проблема. Мой php dir находится на D :. Поэтому я открыл cmd как администратор и отправился на C: \ и набрал 'mklink/D php D: \ php.inì' и решил свои проблемы – Tschallacka