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

Sur*_*ala 6 php macos php-extension macos-mojave

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

我尝试了以下解决方法:

  1. 使用复制 php.ini cp /etc/php.ini.default php.ini
  2. 删除了“;” 前extension=php_intl.dll
  3. 重启阿帕奇 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
Run Code Online (Sandbox Code Playgroud)

/usr/lib/php/extensions/no-debug-non-zts-20160303即只有 2 个文件,opache.so并且xdebug.so

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

Sur*_*ala 6

这是一个对我有用的解决方案:

  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_profilevi ~/.bash_profile并将此行添加到文件中: export PATH=/usr/local/php5/bin:$PATH
  6. 保存并运行这个 source ~/.bash_profile
  7. 检查是否使用.php安装了PHP Intl Extensionphp -m | grep intl。如果安装顺利,我们将看到intl列出。如果不是,则未安装扩展。

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