розширення intl: встановлення php_intl.dll


76

Я намагаюся знайти php_intl.dllта встановити його.

Хтось має якісь поради?

Відповіді:


61

Усі пакунки на веб- сайті http://windows.php.net/download/ містять те, php\_intl.dllщо знаходиться в піддиректорії ext/.
Все, що вам потрібно зробити, це перевірити, чи вказує ваш extension_dir на потрібний каталог і додати (або розкоментувати) extension=php\_intl.dllдирективу.


Не забудьте перезапустити Apache після змін у файлі php.ini.
Дмитро Дзюбак

94

Щоб php_intl.dllрозширення працювало належним чином, вам потрібно мати наступні файли в папці PATH:

  • icudt36.dll
  • icuin36.dll
  • icuio36.dll
  • icule36.dll
  • iculx36.dll
  • icutu36.dll
  • icuuc36.dll

За замовчуванням вони сидять у вашому каталозі PHP, але цей каталог не обов'язково у вашому PATH(це було не для мене, використовуючи xampp)

Це має бути у вашому глобальному шляху, а не лише у шляху вашого користувача. Щоб встановити глобальний шлях, перейдіть до системної інформації ( windows key + PAUSE), потім Додаткові налаштування системи (Vista +) або Додатково (XP), натисніть кнопку «Змінні середовища» та додайте відповідний каталог до PATHзмінної у списку Системні змінні.


3
Чудова відповідь! проголосував. Тільки примітка, може допомогти, якщо ви використовуєте xampp, перезапустіть xampp після внесення змін до "Змінні середовища".
Рохіт Гупта

Відповідь чудова. Допоміг мені вирішити проблему з Yii2 MessageFormater.php. Велике спасибі
userlond

Просто натрапив на це вдруге за ту ж проблему на іншому комп’ютері. Хотілося б, щоб я проголосував за нього двічі.
danielson317,

Для php7.1.6 бібліотеки DLL містять число 57 замість 36. Рішення все-таки просто додати каталог php до PATH.
Джошуа Уолш,

Як зазначено у відповіді user2650636, ви також можете скопіювати файли icu * .dll у свою папку apache / bin (або в будь-яку іншу папку, в якій знаходиться ваш основний виконуваний файл), замість того, щоб додавати їх у шлях. Хоча це не ідеально, це дозволяє різним версіям PHP працювати в одній системі.
Youen

59

У мене встановлені XAMPP 1.8.3-0 та PHP 5.5.0.

1) відредагуйте php.ini:

від

;extension=php_intl.dll

до

extension=php_intl.dll

Примітка: Після модифікації потрібно зберегти файл (php.ini), а також перезапустити сервер Apache.

2) Просто скопіюйте всі файли icu * * * * .dll :

від

C: \ xampp \ php

до

C: \ xampp \ apache \ bin

Тоді розширення intl працює !!!


1
@rab переконайтеся, що у вас встановлена ​​необхідна версія VC ++ для поширення, вона містить msvcp*бібліотеки DLL. Згаданий вами файл msvcp110.dllповинен міститися у пакунку Vist ++ 2012 Redist.
khargoosh

Чудово, у Windows 10 відповідь Джеремі Уорна не працює, але це працює. Спасибі!
PHP,

Це виправлено для моєї проблеми. Проблема трапилася зі мною після того, як я встановив інший пакет xampp з PHP7. Дякую!
jroi_web

15

У мене була та сама проблема ... Я знайшов потрібні файли, здійснивши пошук на моєму диску для пошуку icu * * .dll, і знайшов перераховані вище, але в папці php 46, а не 36. Я скопіював їх, вставив у файл apache / bin і спробував запустити apache, і він нарешті запустився. На сторінці «Перевірка сервера» він тепер змінено з «Жовтий» на «Зелений». Сподіваюся, це допомагає.


Я думав, що це моя проблема, але виявляється, я мав помилку в своїх змінних PATH! Переконайтесь, що ваш шлях точно визначений, і вам може не знадобитися копіювати в apache / bin
alexleonard

9

Якщо ви прочитали повідомлення про помилку, "icuuc36.dll" відсутній. Проблема в тому, що у вас немає каталогу PHP у вашому PATH, або ви можете скопіювати всі файли "intl" із каталогу php в каталог apache \ bin. Це: icudt36.dll icuin36.dll icuio36.dll icule36.dll iculx36.dll icutu36.dll icuuc36.dll


3

Для WampServer 2.5 ( Apache 2.4.9 і PHP 5.5.12 ):

За замовчуванням я php_intl ввімкнув (ви можете ввімкнути його, коли ви, left click on the wamp icon in the system tray > PHP > PHP extensionsі перевірити, чи позначено це)

Щоб він працював належним чином, мені довелося скопіювати :

C: \ wamp \ bin \ php \ php5.5.12 \ icu ** 51.dll

(всього 8 файлів)

до

C: \ wamp \ bin \ apache \ apache2.4.9 \ bin

Потім просто перезапустіть вамп, і все було просто добре.


xampp only 6 file
Savan Dholu

3

У мене PHP 5.3.1 та Apache

Коли я додаю extension=php_intl.dllphp.ini і перезапускаю apache, з’являється попередження про те, що „запитована операція не вдалася

І ця помилка на моніторі подій:

Faulting application name: httpd.exe, version: 2.2.14.0, time stamp: 0x4ac181d6
Faulting module name: php5ts.dll, version: 5.3.1.0, time stamp: 0x4b051b35
Exception code: 0xc0000005

Проблема полягала в тому, що відсутні деякі бібліотеки DLL, такі як icudt36.dll (помічено з sysinternals ProcMon), я завантажив zip-версію php 5.3.1 і витягнув усі бібліотеки DLL у папку PHP. Це вирішило проблему.


2

Я вирішив цю проблему, додавши каталог PHP до змінної PATH. Я щойно додав змінну ;C:\xampp\phpдо Pathзмінних середовища Windows.


2

Я маю IIS 7 і встановив PHP за допомогою інсталятора веб-платформи Microsoft у Windows 7. У IIS перейдіть до Менеджера PHP на головній сторінці налаштувань -> Розширення PHP -> Увімкнути або вимкнути розширення. Розширення Intl вимкнено за замовчуванням.

Сподіваюся, це допоможе


Як це відповідає на питання?
Кмейкснер

Я припустив, що він шукає php_intl.dll, оскільки у нього є проблеми з увімкненням розширення intl у PHP, принаймні це був мій випадок. Якщо ні, то вибачте. Моя погана
Йохан Марчан



1

Коли я зіткнувся з цією проблемою, це було розібрано, використовуючи згадані нижче кроки:

Змінити php.ini:

Зробити

; розширення = php_intl.dll до

extension = php_intl.dll Просто скопіюйте всі файли icu * * * * .dll (будь-який файл icu з розширенням dll) з

C: \ xampp \ php в C: \ xampp \ apache \ bin

Також якщо у вас є помилка файлу msvcp110.dll, який відсутній. Ви повинні завантажити правильну .dll або просто зайти тут http://www.microsoft.com/es-es/download/confirmation.aspx?id=30679 та встановити vcredist_x64.exe та vcredist_x86.exe.

Тепер розширення intl має працювати :-)


1

У моєму випадку додавання каталогу PHP до PATH в середовищі користувача не спрацювало. Після деяких тестувань я виявив, що його слід додати до системи PATH (я не знаю, як називається ця частина вікон налаштування системи, тому що у мене є польська Windows).


1

Пакет уже включений у розширення для PHP 7.2 і вище, і вам просто потрібно прокоментувати наступний рядок у php.ini

extension=intl

Цей метод розкомментації працює для більшості розширень php для Windows, але не для intl . Щоб intl працював, вам також потрібно скопіювати всі icu * .dll з папки php в папку apache \ bin.
Даніель Ву

0

/ Копач тут /

Переміщення icu*****.dllфайлів до/ext/ здається, також вирішує проблему.

(Якщо ви, звичайно, вказали каталог розширень)


0

На моїй панелі керування xampp натисніть кнопку config, щоб відкрити php.ini

видалити; в

; розширення = php_intl.dll

Потім перезапустіть apache.


0

Існує кращий спосіб зробити це.

У мене були такі самі проблеми з розширеннями ldap, intl, curl php. Я вирішив ці проблеми наступними способами:

Спочатку потрібно перевірити, чи активовано ці розширення у файлі php.ini, видаливши крапку з комою (;) перед наступними рядками:

;extension=php_intl.dll
;extension=php_ldap.dll
;extension=php_curl.dll

Тепер ви можете безпосередньо завантажити ці необхідні файли dll (тобто libeay32, libssh2, ssleay32, icu **. Dll) із вашого файлу httpd.conf (файл конфігурації apache). Вам не потрібно робити будь-які інші речі, наприклад, копіювати їх у каталог bin apache або ext каталог php. Просто додайте їх безпосередньо у файл httpd.conf apache.

Зверніть увагу, що наступний приклад наведено для php версії 5.5.x.

LoadFile  "C:/php/icudt51.dll"
LoadFile  "C:/php/icuin51.dll"
LoadFile  "C:/php/icuio51.dll"
LoadFile  "C:/php/icule51.dll"
LoadFile  "C:/php/iculx51.dll"
LoadFile  "C:/php/icutest51.dll"
LoadFile  "C:/php/icutu51.dll"
LoadFile  "C:/php/icuuc51.dll"

LoadFile  "C:/php/libeay32.dll"
LoadFile  "C:/php/libssh2.dll"
LoadFile  "C:/php/ssleay32.dll"

Це воно. Тепер перезапустіть апаш або вамп, і все готово.


0
  1. У розширеннях php на вашому сервері переконайтеся, що перевірено intl
  2. перевірте свій extension_dir у вашому файлі php / v7.0 / php, переконайтесь, що каталог не коментується та він правильний
  3. (Не знаю, чи це сприяло, але я зробив усі три). До списку розширень у тому ж файлі, що і 2 вище, включіть файл intl у тому ж форматі, що й інші (якщо він не включений). Всього найкращого

0

У мене були проблеми з запуском intl за допомогою PHP 7.1.7 і PhpStorm в Windows 10. На підставі інших відповідей тут я міг сказати, що це проблема залежності PATH / DLL, але я не міг знайти всі необхідні файли навіть після (повторне) встановлення Visual C ++ Redistributable.

Врешті-решт я пішов шукати свій диск C: для vcr * .dll і знайшов копію vcruntime140.dll у своєму C:\Program Files\Mozilla Firefoxкаталозі. Отже, окрім внесення цих змін до php.ini:

extension_dir = "ext"
extension=php_intl.dll

Я також встановив для мого PATH часу виконання ТІЛЬКИ каталог PHP (у моєму випадку C:\Program Files\PHP\7.1.7) та каталог Firefox (вгорі), і він НАРЕШТЕ працював! Я знаю, що для цього потрібен не лише файл vcruntime140.dll, але інші необхідні бібліотеки DLL теж повинні бути в каталозі FF (їх є кілька десятків, але я не потрудився з’ясувати, які з них є важливими).


0

Вам потрібно змінити файл php.ini, видаливши крапку з комою в рядку, що містить extension = php_intl.dll

Після цього перейдіть до папки php Xamp або Wamp або EasyPHP, скопіюйте кожен файл dll, що містить icu *, вставте їх у свій файл Windows.

Це спрацювало для мене. Конфігурація: EasyPHP Dev Server, Windows 10.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.