Установка CakePHP 3.0: внутреннее расширение отсутствует в системе
Используя CakePHP docs, я пытаюсь установить 3.0-beta2 с помощью composer, но я получил эту ошибку:
cakephp/cakephp 3.0.x-dev requires ext-intl * → the requested PHP extension intl is missing from your system
Тем не менее, я точно знаю, что intl установлен (он показывает на phpinfo). Я использую PHP 5.4.33/Apache 2.4.10.1
Ответы
Ответ 1
Я столкнулся с той же проблемой сегодня. Вам нужно включить расширение intl PHP в вашей конфигурации PHP (.ini
).
Решение Xampp (Windows)
- Откройте
/xampp/php/php.ini
- Изменить
;extension=php_intl.dll
на extension=php_intl.dll
(удалить точку с запятой) - Скопируйте все файлы
/xamp/php/ic*.dll
в /xampp/apache/bin
- Перезапустите apache в панели управления Xampp
Решение Linux (спасибо Аннамалай Сомасундарам)
-
Установить расширение php5-intl sudo apt-get install php5-intl
1.1. В качестве альтернативы используйте sudo yum install php5-intl
если вы используете CentOS или Fedora.
-
Перезапустите apache sudo service apache2 restart
Решение Mac/OSX (доморощенный) (спасибо деизелю)
- Установите расширение php5-intl
brew install php56-intl
- Если вы получили
No available formula for php56-intl
следуйте этим инструкциям. - Перезапустите apache
sudo apachectl restart
В конце концов вы можете запустить composer install
чтобы проверить, работает ли он. Это даст ошибку, если это не так.
Ответ 2
Я столкнулся с той же проблемой в ubuntu 12.04
Установлен: sudo apt-get install php5-intl
Перезагрузили Apache: sudo service apache2 restart
Ответ 3
OS X Homebrew (май 2015 г.):
Расширение intl
было удалено из основных формул php5x
, поэтому вы больше не компилируете флаг --enable-intl
.
Если вы не можете найти новый пакет:
$ brew install php56-intl
Error: No available formula for php56-intl
Следуйте этим инструкциям: https://github.com/Homebrew/homebrew-php/issues/1701
$ brew install php56-intl
==> Installing php56-intl from homebrew/homebrew-php
Ответ 4
При использовании MAMP
1 Перейти к терминалу
vim ~/.bash_profile
i
export PATH=/Applications/MAMP/bin/php/php5.6.2/bin:$PATH
Измените php5.6.2 на версию php, которую вы используете с MAMP
Нажмите ESC, введите :wq
, нажмите Enter
source ~/.bash_profile
какой php
2 Установите порты Mac
https://www.macports.org/install.php
sudo port install php5-intl
ИЛИ sudo port install php53-intl
cp /opt/local/lib/php/extensions/no-debug-non-zts-20090626/intl.so /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/
{take a good look at the folder names that u use the right ones}
3 Добавьте расширение
Теперь добавьте расширение к вашему файлу php.ini
:
extension=intl.so
Полезная ссылка: https://gist.github.com/irazasyed/5987693
Ответ 5
Короткий ответ: активируйте расширение intl в php_cli.ini. Благодаря @ndm для его ввода.
Ответ 6
В сообщении об ошибке четко указано, в чем проблема. Вам необходимо установить встроенное расширение.
Шаг 1: установите PHP в удобную версию
$sudo apt-get install php-intl
Шаг 2:
Для встроенного расширения XAMPP Server уже установлено, вам необходимо включить это расширение, чтобы раскомментировать его ниже в файле php.ini. Файл Php.ini находится в каталоге c:\xampp\php\php.ini или где вы установили XAMPP.
Перед раскомментированием:
; extension = php_intl.dll; extension = php_mbstring.dll
После раскола:
extension = php_intl.dll extension = php_mbstring.dll
Ответ 7
В моем случае я на самом деле не пытался запускать cakephp локально, я просто пытался получить его для автоматического обновления локально с помощью композитора (потому что я играю с написанием плагинов, которые вы устанавливаете вместе с композитором). Поскольку я даже не запускаю его локально, я просто могу игнорировать требования, добавляя флаг -ignore-platform-reqs.
php composer.phar update --ignore-platform-reqs
Ответ 8
Для терминала Ubuntu:
Следуйте инструкциям:
Шаг-1:
cd ~
Шаг -2: Выполните следующие команды
sudo apt-get install php5-intl
Шаг -3: Затем вам необходимо перезапустить Apache
sudo service apache2 restart
Для Windows (XAMPP):
Найдите файл Php.ini:
/xampp/php/php.ini
Обновите файл php.ini с помощью remove (;) semi colon, как указано ниже:
; extension = php_intl.dll - extension = php_intl.dll
и сохраните файл php.ini.
После этого вам нужно
Перезапустите xampp с помощью управления xampp.
Ответ 9
В моем случае моя работающая версия php 7.1.x на Mac OSX.
Я установил команду intl, используя brew установить php71-intl.
Размещение расширения = intl.so внутри php.ini не имело никакого эффекта. Наконец, я искал каталог с установленным расширением, и там я увидел intl.so и поместил этот путь (extension =/usr/local/Cellar/php71-intl/7.1.11_20/intl.so) в мой php.ini, и он решил мою проблему.
Ответ 10
СДЕЛАЙТЕ этот
В XAMPP включено расширение intl, но вы должны раскомментировать расширение php_intl.dll в php.ini и перезапустить сервер через панель управления XAMPP.
В WAMP расширение по умолчанию "активировано" по умолчанию, но не работает. Чтобы заставить его работать, вы должны пойти в папку php (по умолчанию) C:\wamp\bin\php\php {version}, скопировать все файлы, которые выглядят как icu *.dll, и вставить их в каталог apache bin C:\WAMP\Bin\Apache\апача {версия}\Bin. Затем перезапустите все службы, и все будет в порядке.
если вы используете XAMPP, сделайте это
1. выключить XAMPP
2. Модифицированный php.ini находится в c/: xampp/php/php.ini
3. Внутреннее расширение включено, но вы должны раскомментировать расширение php_intl.dll в php.ini и перезапустить сервер через панель управления XAMPP.
Ответ 11
Intl Means: расширение интернационализации, которое позволяет программистам выполнять UCA-совместимую сортировку и число, валюту, дату, время форматирования в PHP-скриптах.
Можно включить PHP Intl с PECL.
pecl install intl
На простой RHEL/CentOS/Fedora PHP Intl можно установить с помощью yum
yum install php-intl
В Ubuntu PHP Intl можно установить с помощью apt-get
apt-get install php5-intl
Перезапустите службу Apache, чтобы изменения вступили в силу.
Что он
Ответ 12
Для тех, кто получает Package not found
ошибку try sudo apt-get install php7-intl
, запустите composer install
в каталоге проекта.
Ответ 13
У меня была такая же проблема в окнах
Ошибка заключалась в том, что я установил несколько версий PHP, а переменные среды маршрутизировали на неправильный путь php см. Пример изображения
Ответ 14
Я использую Mac OS High Sierra, и ни один из них не помог мне. Но после долгих поисков я нашел тот, который работает!
Это может показаться тривиальным, но на самом деле около 2 месяцев назад некоторые умные ребята внесли изменения в репозиторий brew, сделав это просто: brew install php71-intl
покажет вам сообщение об ошибке, что такой рецепт не существует.
К счастью, есть. В другом репозитории Brew есть временное исправление, поэтому все, что вам нужно сделать, это:
brew tap kyslik/homebrew-php
brew install kyslik/php/php71-intl
ИСТОЧНИК: http://blastar.biz/2018/04/14/how-to-enable-php-intl-extension-for-php-7-1-using-xampp-on-macos-high-sierra/
Ответ 15
Если вы используете последнюю версию Ubuntu 16.04 или выше, просто сделайте
sudo apt-get install php-intl
Затем перезагрузите ваш Apache
sudo service apache2 restart