【问题标题】:How to enable PHP Intl extension on macOS Mojave?如何在 macOS Mojave 上启用 PHP Intl 扩展?
【发布时间】:2019-06-09 21:41:06
【问题描述】:

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

我尝试了以下解决方法:

  1. 使用cp /etc/php.ini.default php.ini复制了一份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.soxdebug.so

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

【问题讨论】:

  • extension=php_intl.dll 应该是 extension=php_intl.so,因为这不是 Windows。
  • 谢谢。试过了,但同样的问题al-OSX:sbin konathal$ php -i | grep intl PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.so, 0x0009): dlopen(): file not found: /usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.so in Unknown on line 0

标签: php macos php-extension macos-mojave


【解决方案1】:

PHP 7.x 已包含模块 PHP-Intl,请通过 homebrew 安装 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

完成!

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      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 文件中显式启用它们。

      【讨论】:

      • 有用的答案,但我认为没有必要在.bash_profile 中添加export PATH=/usr/local/php5/bin:$PATH?我用brew 安装了PHP,我的机器上没有/usr/local/php5 目录。
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2017-06-24
        • 2021-04-10
        • 1970-01-01
        • 2018-01-17
        • 2013-01-18
        • 2016-01-21
        • 2013-09-24
        • 2018-05-10
        • 1970-01-01
        相关资源
        最近更新 更多