Как включить расширение PHP Intl в MacOS Mojave? - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь установить Magento (2.3.0) на MacOS Mojave. Magento показывает, что PHP Extension intl. отсутствует.

Я попытался решить ниже:

  1. Сделал копию php.ini, используя cp /etc/php.ini.default php.ini
  2. Удалено ";" до extension=php_intl.dll
  3. Перезагрузите Apache sudo apachectl restart

Но вышесказанное не помогло.

При проверке php -v я вижу следующую ошибку:

PHP Warning:  PHP Startup: Unable to load dynamic library 
'/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll' - 
dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll, 
0x0009): dlopen(): file not found: /usr/lib/php/extensions/no-debug- 
non-zts-20160303/php_intl.dll in Unknown on line 0
PHP 7.1.19 (cli) (built: Aug 17 2018 20:10:18) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

В /usr/lib/php/extensions/no-debug-non-zts-20160303 есть только 2 файла, а именно opache.so и xdebug.so

Как мне установить или включить «PHP Extension intl» на моем MacOS Mojave?

Ответы [ 3 ]

0 голосов
/ 26 января 2019

Получил помощь по ссылке и смог скомпилировать https://donatstudios.com/Install-PHP-Mcrypt-Extension-in-OS-X

Далее мы загрузим исходный код PHP. Проверьте точную версию PHP, которую вы используете. Это можно получить следующим образом. Версия выделена.

$ php --version
PHP 7.1.19 (cli) (built: Aug 17 2018 18:03:17) ( NTS )
Copyright (c) 1997-2018 The PHP Group

Now we move into a working directory and download the source making sure to update the following for the version from above.


$ cd /tmp
$ curl -L http://php.net/get/php-{{php-version}}.tar.bz2/from/this/mirror > php.tar.bz2
$ open php.tar.bz2

Now we will compile and test the extension.

$ cd php-{{php-version}}/ext/{{extension}}
$ phpize
$ ./configure
$ make
$ make test
$ sudo make install

If all that goes well finally we'll need to add the following to our php.ini - I usually add at it at the end of the file.

extension = {{extension}}
.so
You can verify your installation with the following:

$ php --info | grep {{extension}}\\.

Lastly, depending on your setup now you may want to restart apache.

$ sudo apachectl restart
0 голосов
/ 04 июля 2019

Если вы установили php Homebrew, то ссылка на каталог с вашим путем решит проблему. brew link --force php@7.3 У меня была та же проблема, и это решило ее. Здесь - ссылка, по которой я получил подробный ответ от

0 голосов
/ 25 января 2019

Вот решение, которое сработало для меня:

  1. Найти все установленные версии PHP brew list | grep php
  2. Удалить все версии PHP brew remove --ignore-dependencies --force php70 php71 php72 (в зависимости от того, что вы видите выше)
  3. Установить PHP brew install php72 (я выбрал 7.2, 7.3 не поддерживается несколькими поставщиками)
  4. Запустите команду which php, которая покажет вам путь к установленному PHP.Скопируйте путь.
  5. Обновите ваш bash_profile vi ~/.bash_profile и добавьте эту строку в файл: export PATH=/usr/local/php5/bin:$PATH
  6. Сохраните и запустите source ~/.bash_profile
  7. Проверьте, если PHP Intl Extension устанавливается с использованием php -m | grep intl.Если установка прошла успешно, мы увидим intl в списке.Если не расширение не установлено.

Я думаю, из PHP 7 (не уверен в версии), расширения доступны по умолчанию, и нам не нужно включать их в php.ini файл явно.

...