php install php intl
Обновляем расширение Intl в PHP 7 на Linux Ubuntu 16.04
Программисты делятся на два типа: консерваторы, для которых переход на новую версию равносилен перелёту на другую планету (если читаешь это из Windows XP — поздравляю, это ты); и Викторы Цои, чьи сердца и глаза требуют перемен, и обновляют всё и вся при первой возможности. Если ты второго типа, и у тебя уже стоит последняя версия PHP на последней LTS версии Ubuntu, но покоя не даёт то, что расширение Intl использует устаревшую версию библиотеки ICU, или тебе просто понравились картинки из «Аватара» — добро пожаловать под кат! (Картинок больше не будет.)
Ну и зачем это?
Библиотека ICU с каждым релизом добавляет поддержку стандартов транслитерации для различных языков, добавляет новые функции и возможности, фиксит баги. Пока неизвестно, по какой причине PHP нерегулярно обновляет ICU в расширении Intl. Поэтому приходится всё брать в свои руки.
Поиск решения
Быстрый поиск по гуглу не дал внятных решений. Детальный тоже. В общем и целом пэхэпэшным программистам по барабану, какую версию ICU использует Intl. Но только не нашим! Отчаявшись искать в англоязычном сегменте интернета, совершенно случайно набрёл на запись русского блогера Сергея Стоянова, где он объясняет процесс обновления ICU в PHP 5 для Ubuntu 14.04. В PHP 7 процесс сильно отличается, но общая последовательность действий остаётся такой же: удаляем Intl; собираем новую версию ICU; устанавливаем Intl, ткнув его носом, где искать ICU; включаем Intl в PHP; открываем шампанское. Также сильно помогли комментарии к статье (особенно комментарий Антона Минина и его shell скрипт).
Версии ICU
Проверить последнюю версию ICU можно на их официальном сайте. На данный момент (февраль 2018) последний релиз — 60.2.
Чтобы проверить, какую версию ICU использует php7.0-intl, напиши в терминале и прокрути до списка установленных модулей. Найди там раздел, озаглавленный «intl». У меня там было:
Internationalization support => enabled
version => 1.1.0
ICU version => 55.1
ICU Data version => 55.1
Мягко говоря, не айс — версия 55.1 была выпущена в первой половине 2015-го, и с тех пор успела обновиться ещё 5 раз. Нужно же что-то делать!
Решение
Internationalization support => enabled
version => 1.1.0
ICU version => 60.2
ICU Data version => 60.2
Intl расширение: установка php intl.файл DLL
Я пытаюсь найти php_intl.dll и установить его.
у кого-нибудь есть советы?
18 ответов
на php_intl.dll расширение для правильной работы вам необходимо иметь следующие файлы в папке в вашем PATH :
по умолчанию они находятся в вашем каталоге PHP, но этот каталог не обязательно находится в вашем PATH (это не для меня, используя программе XAMPP)
это должно быть в вашем глобальном пути, а не только пути вашего пользователя. Чтобы задать глобальный путь, перейдите к system info ( клавиша windows + пауза ), затем расширенные Системные настройки (Vista+) или расширенные (XP) и нажмите кнопку «Переменные среды» и добавьте соответствующий каталог в PATH переменная в списке системных переменных.
у меня установлен XAMPP 1.8.3-0 и PHP 5.5.0.
1) редактировать php.ini:
Примечание: после модификации необходимо сохранить файл (php.ini), а также необходимо перезапустить сервер Apache.
2) просто скопировать все icu* * * *.dll файлы файлы:
тогда расширение intl работает.
Если Вы читаете сообщение об ошибке, » icuuc36.dll » отсутствует. Проблема в том, что у вас нет PHP dir в вашем пути, или вы можете скопировать все файлы «intl» из каталога php в каталог apache\bin. Они : icudt36.файл DLL icuin36.файл DLL icuio36.файл DLL icule36.файл DLL iculx36.файл DLL icutu36.файл DLL icuuc36.dll файлы
на 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 и проверьте, отмечен ли он)
чтобы он работал правильно, мне пришлось скопировать:
затем просто перезапустите wamp, и все было в порядке.
У меня есть PHP 5.3.1 и Apache
когда я добавить extension=php_intl.dll на php.ini и перезапустить apache, приходит предупреждение, которое говорит: «запрошенная операция не удалась»
и эта ошибка на мониторе событий:
проблема заключалась в некоторых DLL, таких как icudt36.dll отсутствовали (замечено с Sysinternals ProcMon), я загрузил версию PHP 5.3.1 zip и извлек все DLL в папку PHP. Это решило проблему.
Я решил эту проблему, добавив каталог PHP в переменную PATH. Я только что добавил ;C:\xampp\php до Path переменная в переменных среды Windows.
надеюсь, это поможет
когда я столкнулся с этой проблемой, он был отсортирован, используя следующие шаги:
; extension=php_intl.файл DLL к
расширения=php_intl.файл DLL Просто скопируйте все icu****.dll файлы (любой файл icu с расширением dll) из
C:\xampp\php к C:\xampp\apache\bin
перемещение icu*****.dll файлы /ext/ Кажется, чтобы решить проблему.
(Если вы указали каталог расширения, чтобы быть там, конечно )
в моей панели управления xampp нажмите config, чтобы открыть php.ini
затем перезапустите apache.
есть лучший способ сделать это.
у меня была такая же проблема с расширениями ldap, intl, curl php. Я решил эти проблемы следующим образом:
сначала вы должны проверить, включены ли эти расширения в php.ini-файл, удалив точку с запятой (;) перед следующими строками:
теперь вы можете напрямую загружать эти необходимые dll-файлы (т. е. libeay32, libssh2, ssleay32, icu**.DLL ) в файл httpd.файл conf (файл Apache ВХ). Вам не нужно делать никаких других вещей, таких как копирование их в каталог bin apache или каталог ext php. Просто добавьте их непосредственно в httpd apache.файл conf.
обратите внимание, что следующий пример предназначен для php версии 5.5.x.
вот именно. Теперь перезагрузите apache или wamp, и вам хорошо идти.
у меня возникли проблемы с запуском intl с помощью PHP 7.1.7 и PhpStorm в Windows 10. Основываясь на других ответах, я мог бы сказать, что это проблема зависимости пути/DLL, но я не мог найти все необходимые файлы даже после (повторной)установки распространяемого Visual C++.
В конце концов я пошел искать мой диск C: для видеомагнитофона*.dll и нашел копию vcruntime140.dll в моем
в моем случае добавление каталога PHP в PATH в пользовательской среде не сработало. После некоторого тестирования я обнаружил, что он должен быть добавлен в системный путь (я не знаю, как называется эта часть системных настроек windows, ‘couse у меня есть польские окна).
вы можете ввести эту команду в терминале: sudo apt-get install php-intl
Install intl PHP extension OSX High Sierra
How can I install intl PHP extension in PHP 7.1.7, which is delivered with osx high sierra?
11 Answers 11
So I had the exact same issue. As noted by other folks commenting here, High Sierra comes with PHP 7.1 installed and this PHP version has intl compiled with it
In my case, I followed part of Neodork comment’s in the following Valet+ issue:
«Install» PHP 7.1 (so it comes from brew itself, not the one installed by High Sierra)
brew install php@7.1
Upgrade it to latest version
brew upgrade php@7.1
Symlinks for references in Cellar:
Change PHP path in my bash profile
Reload your bash profile (you can close the terminal and open it again)
Note: If you come across with warnings like:
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/opt/php71-intl/intl.so’
Then you have to disable the previous intl:
mv /usr/local/etc/php/7.1/conf.d/ext-intl.ini /usr/local/etc/php/7.1/conf.d/ext-intl.ini.disabled
To enable the installed version, you need to do this:
After brew install php@7.1
You need to link the installed PHP version by brew link php@7.1
Then you need to OPEN A NEW TERMINAL to make it effective.
Then double check the PHP binary path, which php
make sure it’s /usr/local/bin/php instead of /usr/bin/php
intl extension: installing php_intl.dll
I’m trying to locate php_intl.dll and install it.
Does anyone have any tips?
20 Answers 20
For the php_intl.dll extension to work correctly, you need to have the following files in a folder in your PATH :
By default they’re sitting in your PHP directory, but that directory isn’t necessarily in your PATH (it wasn’t for me, using xampp)
This has to be in your global path, not just your user’s path. To set the global path, go to system info ( windows key + PAUSE ), then Advanced System Settings (Vista+) or Advanced (XP) and click the «Environment Variables» button and add the appropriate directory to the PATH variable in the System Variables list.
I have XAMPP 1.8.3-0 and PHP 5.5.0 installed.
1) edit php.ini:
Note: After modification, need to save the file(php.ini) as well as need to restart the Apache Server.
2) Simply copy all icu* * * *.dll files:
Then intl extension works.
If you read error message, «icuuc36.dll» is missing. The problem is that you don’t have the PHP dir in your PATH, or you can copy all «intl» files from php directory to apache\bin directory. They are : icudt36.dll icuin36.dll icuio36.dll icule36.dll iculx36.dll icutu36.dll icuuc36.dll
For WampServer 2.5 (Apache 2.4.9 and PHP 5.5.12):
In default I’ve had php_intl enabled (you can enable it when you left click on the wamp icon in the system tray > PHP > PHP extensions and check if is it marked)
To have it properly working, I’ve had to copy:
Then just restart the wamp and everything was just fine.
I have PHP 5.3.1 and Apache
When I add the extension=php_intl.dll to php.ini and restart apache, it comes an alert that says «the requested operation has failed»
And this error on Event Monitor:
The problem was some DLLs like icudt36.dll were missing (noticed with sysinternals ProcMon), I’ve downloaded php 5.3.1 zip version and extract all DLL’s to PHP folder. That solved the problem.
The package is already included in the extensions for PHP 7.2 and above and you just need to uncomment the following line in php.ini
When I faced this issue it was sorted out by using below mentioned steps:
extension=php_intl.dll Simply copy all icu* * * *.dll files(any icu file with dll extension) from
C:\xampp\php to C:\xampp\apache\bin
Now the intl extension should work 🙂
I resolved this issue by adding PHP directory to PATH variable. I just appended ;C:\xampp\php to Path variable in Windows Environment Variables.
You can type this command in terminal: sudo apt-get install php-intl
In my case adding PHP directory to PATH in user environment didn’t work. After some testing I’ve found that it should be added to system PATH (I don’t know what’s the name of this part of system setting windows, ‘couse I have Polish Windows).
Moving the icu*****.dll files to /ext/ seems to resolve the issue as well.
( If you specified the extension directory to be there of course )
In my xampp control panel, Click config to open php.ini
Then restart the apache.
There is a better way of doing this.
I was having same kind of problem with ldap, intl, curl php extensions. I’ve solved those issues by the following ways:
At first you’ve to check whether these extensions have been enabled in the php.ini file by removing semicolon (;) in front of the following lines:
Now you can directly load those necessary dll files (ie libeay32, libssh2, ssleay32, icu**.dll ) from your httpd.conf (apache configuratio file) file. You don’t have to do any other things like copying them to the apache’s bin directory or php’s ext directory. Just add them directly in you apache’s httpd.conf file.
Please note that the followng example is for php version 5.5.x.
That’s it. Now, restart your apache or wamp and you’re good to go.
I was having trouble getting intl to run using PHP 7.1.7 and PhpStorm on Windows 10. Based on other answers here I could tell it was a PATH/DLL dependency problem but I couldn’t seem to find all of the required files even after (re-)installing the Visual C++ Redistributable.
I eventually went searching my C: drive for vcr*.dll and found a copy of vcruntime140.dll in my C:\Program Files\Mozilla Firefox directory. So, in addition to making these changes to php.ini:
I also set my runtime PATH to ONLY the PHP directory (in my case, C:\Program Files\PHP\7.1.7 ) and the Firefox directory (above) and it FINALLY worked! I know it needs more than just the vcruntime140.dll but the other required DLLs must be in the FF directory too (there are a few dozen but I didn’t bother to figure out which ones are essential).
how can I enable PHP Extension intl?
I am going to install Magento2 at my local server and it gives me following error notice.
I am using XAMPP. When I tried to enable it from php.ini file it throws another error for missing dll:
The program can’t start because MSVCP110.dll is missing from your computer. Try reinstalling the program to fix this problem.
23 Answers 23
First of all stop the xampp/wamp and then kindly remove the starting semicolon ( ; ) from your xampp/php/php.ini the following code.
And then restart your xampp/wamp.
I wrote this post if anyone come across this question for PrestaShop, I don’t know if it will work for Magento2. I solved enabling PHP extension intl for the PrestaShop installation by:
These steps for me solved the issue.
Note (2): I’m using XAMPP v3.2.3 and PrestaShop v1.7.5.1
I was also having the same issue, and just now i got it solved. Please try the bellow steps to get it solved:
If you are using ubuntu you can take update
And install extension in case of php 5.6
And in case of php 7.0
And restart your apache after
If you are using xampp then remove semicolon ( ; ) in xampp/php/php.ini from below line
And then restart your xampp.
and upload to C:/Windows folder
than after edit php.ini from XAMPP
Save the file and restart Apache from XAMPP
For Megento Installation you Need to
All you need to do is go to php.ini in your xampp folder (xampp\php\php.ini) and remove ; from ;extension=php_intl.dll
Starting with PHP 7.2.0, you only need to specify the extension name.
I.e., add the following line to your php.ini :
Simply copy all icu****.dll files from
intl extension will start working.
ADDITIONAL NOTE (As this is very old question and has no accepted answer yet)
here is the notes I see in my php.ini file.
Note : The syntax used in previous PHP versions (‘extension=.so’ and ; ‘extension=’php_.dll’) is supported for legacy reasons and may be ; deprecated in a future PHP major version. So, when it is possible, please ; move to the new (‘extension=) syntax.
So you will only find the extension name as intl instead of php_intl.dll and then uncommenting that line should work (It worked for me atleast).
I have found two errors during the installing of Magento to localhost.
There are PHP Extension xsl and intl and I have solved the issue by following steps.
Then all the things were passed as well as following picture.
I was having same kind of problem with ldap, intl, curl php extensions. I’ve solved those issues by the following ways:
At first you’ve to check whether these extensions have been enabled in the php.ini file by removing semicolon (;) in front of the following lines:
Secondly, libeay32.dll, ibssh2.dll and ssleay32.dll files have to be loaded by php properly to function those extensions properly. These dll files are required by several php extensions (ie curl, ldap, intl etc). These files generally reside in the php installation directory [for my case it is C:\php directory]. Additionally, for intl extension to be enabled you’re gonna need some other dll files to be loaded by php properly. The name of these files begin with icu (ie icudt57.dll icuin57.dll etc for php version 5.6). You’ll also find these files in the php main installation directory.