如何在macOS Mojave上启用PHP Intl扩展?

时间:2019-01-15 20:22:34

标签: php macos php-extension macos-mojave

我正在尝试在macOS Mojave上安装Magento(2.3.0)。 Magento显示PHP Extension intl.丢失。

我尝试了以下解决方法:

  1. 使用cp /etc/php.ini.default php.ini
  2. 复制php.ini
  3. 已删除“;”在extension=php_intl.dll
  4. 之前
  5. 重新启动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.soxdebug.so

如何在macOS Mojave上安装或启用“ PHP Extension intl”?

4 个答案:

答案 0 :(得分:1)

以下是对我有用的解决方案:

  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 -m | grep intl安装了 PHP Intl Extension 。如果安装顺利,我们将列出 intl 。如果没有,则未安装扩展程序。

我认为从PHP 7(不确定版本)开始,这些扩展默认是可用的,我们无需在 php.ini 文件中明确启用它们。

答案 1 :(得分:0)

如果您安装了Homebrew的php,则将其链接到路径中的目录将解决此问题。 brew link --force php@7.3 我有同样的问题,并解决了它。 Here是一个链接,我从那里获得了详细的答案

答案 2 :(得分:0)

PHP 7.x已包含模块PHP-Intl,请通过自制软件安装PHP。

  1. 安装brew install php
  2. 打开vi ~/.bash_profilevi ~/.zshrc,并将该行放入文件/usr/local/Cellar/php@7.2/7.2.22_1/bin中。
  3. 加载脚本source ~/.bash_profilesource ~/.zshrc

上面的示例中,我使用的是PHP 7.2版。如果您使用其他PHP版本,请在Cellar目录中更改PHP目录。

  1. 检查PHP版本php -v,确保显示的版本与您安装的版本相同。
  2. 检查模块php -mphp -m | grep intl

完成!

答案 3 :(得分:-1)

从链接中获得帮助,并能够编译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