Эта тема на forum.dklab.ru


kachkaev: denwer и php_intl
Добрый день. Столкнулся с проблемой неработоспособности библиотеки intl, решил обратиться за помощью. Гугление не помогло.

Такое ощущение, что библиотека загружается как-то не так, хотя на самом деле подключена. Интерпретатор не видит класс Locale:
Fatal error: Class 'Locale' not found in Z:\home\localhost\www\index.php on line 8.
Никаких ошибок при запуске Денвера не наблюдается.

О том, что расширение подключено, свидетельствует такой факт: если переименовать Z:\usr\local\php5\icuuc38.dll, который необходим intl, то при перезапуске Денвера возникает ошибка. Если закомментировать строку «extension=php_intl.dll» в php.ini, ошибка пропадает, что вполне логично (icuuc38.dll используется только в php_intl.dll).

Получается, что библиотека вроде как есть, она подключена, но классов нет.

Как такое может быть?

Denwer 3 (PHP 5.3.3, MySQL 5.1, PostgreSQL 8.4 etc)
Версия php_intl.dll 5.3.5
Версия icuuc38.dll 3.8.1
ОС: Win7 x64
kachkaev:
Проблему удалось решить самому заменой всего PHP.

Скачал последнюю версию PHP (x86 Thread safe), переименовал папку /usr/local/php5 в /usr/local/php5-backup. Затем скопировал содержимое скаченного архива в заново созданную папку /usr/local/php5 и в самом конце из папки php5-backup переместил php.ini.

Запустил Денвер, всё заработало.

Важные моменты:
— скаченная версия php должна быть thread safe (non-thread safe у меня не заработала).
— необходимо удостовериться, что в файле php.ini есть строчка extension=php_intl.dll, и она не закомментирована.
Maus:
такая библиотека не входит в пакет расширения

Перенесено из форума: Пакеты расширений :: Денвер.
Перенесено в форум: Полезные советы :: Денвер.

Эта тема на forum.dklab.ru