Композитор: запрошенный PHP-расширение ext-intl * отсутствует в вашей системе
Я пытаюсь использовать файл composer.json
. но, когда я пытаюсь запустить команду 'composer install
' в моем path/project/
, я получаю сообщение об ошибке:
![enter image description here]()
Я уже настроил свой wamp
для 'extension=php_intl.dll
' и скопировал все icu*.dll
в 'D:\wamp\bin\apache\apache2.2.22\bin
' из 'D:\wamp\bin\php\php5.3.13
' и отобразил в phpinfo()
:
![enter image description here]()
без копирования icu*.dll
также работает и отображается в phpinfo()
;
Пожалуйста, дайте мне знать, если у меня установлена intl
на моем wamp
и composer install
на моем компьютере, то почему Я получаю эту ошибку. действительно, это так раздражает.
Вот мои подробности:
- ОС: windows 7 (64)
- PHP: 5.3.13
- Apache: 2.2.22
- Композитор: установлен исполняемым файлом
- Груша: установлена (последняя)
- PHPUnit: установлен (последний)
Мой composer.json
выглядит следующим образом:
{
"name" : "sebastian/money",
"description" : "Value Object that represents a monetary value (using a currency smallest unit)",
"keywords" : ["money"],
"homepage" : "http://www.github.com/sebastianbergmann/money",
"license" : "BSD-3-Clause",
"authors" : [{
"name" : "Sebastian Bergmann",
"email" : "[email protected]"
}
],
"require" : {
"php" : ">=5.3.3",
"ext-intl" : "*"
},
"require-dev" : {
"phpunit/phpunit" : "~4.0"
},
"autoload" : {
"classmap" : [
"src/"
]
},
"extra" : {
"branch-alias" : {
"dev-master" : "1.3.x-dev"
}
}
}
Сообщите мне, требуется ли какая-либо другая информация.
Любая обратная связь/помощь будут высоко оценены.
Ответы
Ответ 1
Проблема с wamp обычно заключается в том, что она использует другой php.ini для командной строки php, чем для web/apache php. Таким образом, вы видите расширение intp в phpinfo() в браузере, но если вы запустите php -m
в командной строке, вы увидите, что в списке расширений там нет intl.
Вы можете проверить, используя php -i
поверх вывода, он должен указать вам, откуда загружен ini файл. Убедитесь, что вы включили внутреннее расширение в этом ini файле, и вам должно быть хорошо идти.
Ответ 2
Я столкнулся с этим, используя его в Mac, решил это с помощью --ignore-platform-reqs
.
composer install --ignore-platform-reqs
Ответ 3
Чтобы включить расширение intl, следуйте инструкциям ниже.
Вам нужно включить расширение, раскомментировав следующее расширение строки = php_intl.dll в файле C:\xampp\php\php.ini.
Как только вы раскомментируете расширение = php_intl.dll, вы должны перезапустить сервер Apache с помощью панели управления XAMPP.
//about line 998
;extension=php_intl.dll
change as
extension=php_intl.dll
(Примечание: файл php.ini в основном находится в следующем каталоге C:\xampp\php)
Перезапустить xampp
Ответ 4
В linux (например, Debian Jessie):
apt-get install php7.0-intl
сделает задание должным образом создаст символьную ссылку на него.
Ответ 5
просто удали их
"ext-intl" : "*"
из вашего файла composer.json.
Поскольку иногда для некоторых вспомогательных функций среда IDE жалуется, что в файле composer.json отсутствует расширение. Сразу нажмите Alt + Enter, чтобы добавить его в композитор. Но это не значит, что композитор будет считать их. Композитор будет жаловаться в следующий раз при выполнении некоторых операций. Таким образом, мы не должны слепо набирать Alt + Enter, а не устанавливать их вручную в composer, выполнив composer install <package-name>
.
Поскольку я думаю, что вы ввели его вручную, вы должны удалить его, а затем установить его в правильной процедуре composer install <package-name>
Или же вы можете запустить composer update
для подсчета добавленных зависимостей.
Ответ 6
Просто раскомментируйте эту строку (чтобы найти ее, просто выполните поиск в этой строке в редакторе):
;extension=php_sockets.dll
(Удалить точку с запятой, чтобы раскомментировать)
Для меня нет необходимости перезапускать XAMPP (в вашем случае WAMP). Но если это не сработало, перезапустите его.
Ответ 7
Это старый вопрос, но я столкнулся с такой же проблемой на базовом сервере Linux при установке magento 2.
Когда я запускаю команду composer update
или composer install
из моего корневого каталога magento. Его ошибка была ниже ошибки.
Problem 1
- The requested PHP extension ext-intl * is missing from your system. Install or enable PHP intl extension.
Problem 2
- The requested PHP extension ext-mbstring * is missing from your system. Install or enable PHP mbstring extension.
Problem 3
- Installation request for pelago/emogrifier 0.1.1 -> satisfiable by pelago/emogrifier[v0.1.1].
- pelago/emogrifier v0.1.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
...
Затем я искал доступные расширения intl и intl, используя команды ниже.
yum list php*intl
yum install php-intl.x86_64
yum list php*mbstring
yum install php-mbstring.x86_64
И он исправил проблему.
Ответ 8
Если вы получили эту ошибку при запуске команды установки composer, не беспокойтесь. Шаги и требования:
- Шаг 1: Перейдите в папку на сервере, такую как xampp (или) wampp и т.д.
- Шаг 2: откройте папку php внутри нее и перейдите в папку ext.
- Шаг 3: Если вы найдете файл с именем php_intl.dll, нет проблем.
Просто зайдите в файл php.ini и раскомментируйте строку
От:
;extension=php_intl.dll
Для того, чтобы:
extension=php_intl.dll
- Шаг 4: перезапустите xampp, вот и все
Примечание. Если вы не нашли ни одного файла с именем php_intl.dll, вам необходимо обновить версию PHP.
Ответ 9
(с сервером xampp) откройте php.ini в ".\xampp\php"
изменить ; расширение = intl на расширение = intl