Mac OS: расширение Intl не загружается
- в 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
файл.
Как я могу решить эту проблему?






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



php.ini
, который вы настроили?, создайте phpinfo()
в том же пути установки prestashop и проверьте загруженную информацию, этот снимок экрана показывает, как
включен intl: i.postimg.cc/B4xNQ5VL/image.png

26.05.2019 12:12:53
Там может быть проблема с самогоном
Вы можете попробовать использовать это, как упоминалось там:
brew tap kyslik / домашнее пиво-php
самогон установите kyslik/РНР/php71-международный


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


brew link --force php@7.3
. Я упомяну об этом, хотя!

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

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.