Mac OS: расширение Intl не загружается

Mac OS: расширение Intl не загружается

22.03.2019 05:01:48 Просмотров 51 Источник
  • в macOS Мохаве 10.14.3
  • РНР 7.1.23
  • Тема 1.7.5.1

Я попытался установить расширение PHP intl на своем локальном сервере, чтобы использовать Prestashop.

Я добавилextension=php_intl.soв etc/php.ini

Когда я пытаюсь установить Prestashop я получаю Intl extension is not loaded.

$ РНР -м | грэп, международный

Когда я делаю $ php -m | grep intl, я получаю:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/pecl/20160303/php_intl.so' - d lopen(/usr/local/lib/php/pecl/20160303/php_intl.so, 9): image not found in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/pecl/20160303/php_intl.so' - dlopen (/usr/local/lib/php/pecl/20160303/php_intl.so, 9): image not found in Unknown on line 0 intl

Похоже, что файл php_intl.soне существует.

$ судо установить по PECL, международный

Я также попытался $ sudo pecl install intl, и я получаю:

make: *** [php_intl.lo] Error 1 ERROR:сделать ' failed`

$ завиток -с http://php-osx.liip.ch/install.sh | Баш-ы 7.1

Я также попробовал $ curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1и он не создает intl.soфайл.


Как я могу решить эту проблему?

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/55301299/mac-os-intl-extension-is-not-loaded#comment97332509_55301299
вы видели эту тему : stackoverflow.com/questions/54206286/…
https://stackoverflow.com/questions/55301299/mac-os-intl-extension-is-not-loaded#comment99232301_55301299
@SiadArdroumli подтвердите, что не решили проблему, потому что все еще получаете это после установки sudo pecl intl: 2 предупреждения и 1 ошибка. сделайте: * * * [php_intl.lo] Ошибка 1 ошибка: ошибка "make"

Ответы - Mac OS: расширение Intl не загружается / Mac OS: Intl extension is not loaded

Rolige

22.03.2019 07:31:50

Начиная с php 7 нет необходимости загружать расширение php_intl.so- что тебе нужно сделать? для редактирования php.iniи удалить или прокомментировать строку, которая загружает расширение php_intl.so, после этого перезагрузите apache и повторите попытку.

https://stackoverflow.com/questions/55301299/mac-os-intl-extension-is-not-loaded/55304028#comment97337637_55304028
Я пытался сделать это, но Prestashop не обнаруживает intl
https://stackoverflow.com/questions/55301299/mac-os-intl-extension-is-not-loaded/55304028#comment97361906_55304028
и вы уверены, что PrestaShop работает с тем же php.ini, который вы настроили?, создайте phpinfo()в том же пути установки prestashop и проверьте загруженную информацию, этот снимок экрана показывает, как включен intl: i.postimg.cc/B4xNQ5VL/image.png
Siad Ardroumli

26.05.2019 12:12:53

Там может быть проблема с самогоном

Вы можете попробовать использовать это, как упоминалось там:

brew tap kyslik / домашнее пиво-php

самогон установите kyslik/РНР/php71-международный

https://stackoverflow.com/questions/55301299/mac-os-intl-extension-is-not-loaded/56308746#comment99232217_56308746
Больше нет такой вещи, как brew php на macOS Mojave 10.14.3. Вместо этого есть "родной" PHP 7.1.23 без intl.so расширение. Только вывод из того, что вы предлагаете, для меня-это "ошибка: недопустимое формуле: /usr/местные/доморощенный/библиотеки/краны/kyslik/доморощенный-на PHP/Формула/php54-международный.rb php54-intl: "cxx11" не является распознанной стандартной ошибкой: не удается нажать kyslik / php: неверный синтаксис в tap!"
Tom

26.05.2019 10:15:24

PHP 7.1, 7.2 и 7.3 Brew все имеют INTL включен по умолчанию .


Скорее всего, вы просто используете версию PHP для своих пакетов Mac OS.

Бежать

ls -l $(which php)

чтобы узнать, где находится текущий двоичный файл PHP и связан ли он с установкой Brew или нет. В моем случае, например:

lrwxr-xr-x 1 27 May 23 16:30 /usr/local/bin/php -> ../Cellar/php/7.3.5/bin/php

Это означает, что мой phpсвязан с версией 7.3.5 Brew.

Если вы не используете PHP Brew, вы увидите что-то вроде

-rwxr-xr-x 1 11169664 Mar 21 07:09 /usr/bin/php

Установка PHP через Brew

Узнайте, установлен ли уже PHP:

brew list | grep php

Если есть какие-либо выходные данные, и ваша версия PHP присутствует, перейдите к Шагу 2 или используйте Шаг 1, чтобы обновить PHP до последней версии.

1. Установка PHP самодельщиков по

brew install php@7.3

(или 7.2, 7.1). Если Брю жалуется на то, что не может найти формулу, вы, возможно, испортили краны. Вместо php@7.3, чтобы php@7.3 , вы можете попытаться указать полный путь к текущей формуле php:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/php.rb

Все еще не работает, проверьте, используете ли вы последнюю версию Homebrew brew --version.

Homebrew 2.1.3-31-geaf2370
Homebrew/homebrew-core (git revision fd1ef; last commit 2019-05-25)
Homebrew/homebrew-cask (git revision 16d50; last commit 2019-05-26)

2. Ссылка на PHP доморощенного

Теперь, чтобы иметь php"в вашем пути", есть два варианта.

a) либо версия homebrew должна быть связана из своего места установки (/usr / local/bin/Cellar/php....) в каталог по вашему пути (например, /usr / local/bin). Чтобы сделать это, запустите:

brew link --force php@7.3

Если вы не можете связать, это обычно вызвано установленными разрешениями или защитой целостности системы. В первом случае попробуйте sudo chown "$USER":admin /usr/local/bin/php.

b) или добавить /usr/local/opt/php@7.3каталог (opt-префикс) для переменной $PATH. Например, для Bash:

echo 'export PATH="/usr/local/opt/php@7.3/bin:/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile

3. Проверка установки

ls -l $(which php)

должно показать, что phpсвязан с установкой PHP Homebrew в /usr/local/bin/Cellar.

php -v

должен показывать недавно установленную версию PHP. Попробуйте перезагрузить терминал, если это не так.

php -i | grep -i intl

следует показать некоторую информацию о текущей установке intl.

Если вы используете веб-серверы и / или PHP FPM, настало время перезапустить эти службы. (Или перезагрузите систему, если вы не знаете, как это сделать и не можете понять).

Возможные проблемы

Если вы все еще получаете предупреждения об отсутствующих расширениях (не удается загрузить динамическую библиотеку и т. д.), то ваш php.Ини все испортил.

Найдите текущее местоположение ini php

$ php -i | grep \.ini

Configuration File (php.ini) Path => /usr/local/etc/php/7.3
Loaded Configuration File => /usr/local/etc/php/7.3/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/7.3/conf.d
Additional .ini files parsed => /usr/local/etc/php/7.3/conf.d/ext-opcache.ini
....

Отредактируйте /usr/местные/и т. д./РНР/7.3/РНР.ini и найти оскорбительную нагрузку расширения (например, extension="myext.so"прокомментируйте те, которые не могут быть найдены.

Доморощенные разрешения

Некоторые утверждают, что это хорошая идея, чтобы chown /usr/local.

sudo chown -R "$USER":admin /usr/local

Это сделает установку вещей здесь, вручную и через Homebrew, намного проще, но и немного менее безопасным, так как некорневые процессы теперь могут писать здесь тоже.

Ваше веб-приложение использует другую версию PHP.

Убедитесь, что это не так... Конфигурация этого зависит от используемого веб-сервера. Первым шагом было бы вывести текущую конфигурацию PHP в вашем веб-приложении с помощью <?php phpinfo();.

Это объясняет шаги для Apache.

Еще один способ получить веб-сервер + PHP стек работает quicly с помощью Laravel Valet .

Установка дополнительных расширений

Для установки дополнительных расширений PHP используйте PEAR.

pear -V следует вывести текущую версию PEAR и PHP.

PEAR Version: 1.10.9
PHP Version: 7.3.5
Zend Engine Version: 3.3.5

Теперь, чтобы установить расширение, например, расширение yaml PHP:

pear install yaml
https://stackoverflow.com/questions/55301299/mac-os-intl-extension-is-not-loaded/56311457#comment99301685_56311457
Спасибо! Добавьте это к вашему ответу, пожалуйста. Это была моя проблема после установки brew php я также должен переписать свои переменные пути, чтобы указать на новый php. путь экспорта Эхо '="/usr/local/opt/php@7.3/sbin:$путь"' >> ~/.источник bash_profile ~/.файл
https://stackoverflow.com/questions/55301299/mac-os-intl-extension-is-not-loaded/56311457#comment99302386_56311457
@Владимир, это действительно вариант, чтобы получить PHP на вашем пути, другойbrew link --force php@7.3. Я упомяну об этом, хотя!
Rahul Tathod

17.09.2019 12:17:03

я пробовал все, но не работал в mac, поэтому, пожалуйста, удалите xampp и установите mamp, он будет работать

Gabriel Souto

27.09.2019 04:00:56

Итак, на официальном сайте Pecl ( https://pecl.php.net/package/intl ), ясно, что пакет Intl больше не поддерживается и был заменен. Поскольку PHP 5.3.0 вам не нужно использовать Pecl для установки расширения intl, он поставляется в комплекте с PHP.

Но, это отсутствует на родной установки PHP 7.1.24 на Mac OS Mojave.

если вы хотите использовать только родной apache и php предустановленный вместо использования homebrew, сделайте это:

Скачать PHP 7.1 с сайта php.net, установите инструменты командной строки XCode, ICU ( http://site.icu-project.org/ ), Autoconf, переустановите заголовочные файлы инструментов разработчика и, наконец, установите расширение Intl с помощью phpize.

Важно: вам придется отключить SIP.

Закрыть X