安装intl PHP扩展OSX High Sierra

问题描述 投票:19回答:10

如何在PHP 7.1.7中安装intl PHP扩展,这是与osx high sierra一起提供的?

php intl macos-high-sierra
10个回答
42
投票

所以我有完全相同的问题。正如其他人在这里评论所指出的那样,High Sierra安装了PHP 7.1,这个PHP版本已经用它编译了intl

就我而言,我跟随了以下Valet+ issue中Neodork评论的部分内容:

“安装”PHP 7.1(因此它来自brew本身,而不是High Sierra安装的那个)

brew install [email protected]

将其升级到最新版本

brew upgrade [email protected]

Cellar中引用的符号链接:

brew link --overwrite --force [email protected]

在我的bash配置文件中更改PHP路径

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile

重新加载您的bash配置文件(您可以关闭终端并再次打开它)

. ~/.bash_profile

检查国际

php -m | grep intl

注意:如果您遇到以下警告:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-intl/intl.so'

然后你必须禁用以前的intl:

mv /usr/local/etc/php/7.1/conf.d/ext-intl.ini /usr/local/etc/php/7.1/conf.d/ext-intl.ini.disabled

希望能帮助到你!


-4
投票

试试这个

brew install homebrew/php/php71-intl

11
投票

打开终端然后输入:

brew search intl

你应该能够看到php71-intl,然后运行

brew install homebrew/php/php71-intl

然后重启apache

sudo apachectl restart

然后输入:

php -i | grep intl

你应该能够看到这样的东西:

Additional .ini files parsed => /usr/local/etc/php/7.1/conf.d/ext-intl.ini
intl
intl.default_locale => no value => no value
intl.error_level => 0 => 0
intl.use_exceptions => 0 => 0

请享用!


10
投票

在从brew/phpbrew/core的集成之后,intl扩展包含在默认安装中。我也有同样的问题intl扩展无法正常工作。我遇到的问题是命令行环境没有使用已安装的PHP版本,而是使用macOS系统的默认版本。

要启用已安装的版本,您需要执行以下操作:

brew install [email protected] 之后

您需要通过 brew link [email protected] 链接已安装的PHP版本

然后你需要打开一个新的终端以使其生效。 然后仔细检查PHP二进制路径 which php

确保它是 /usr/local/bin/php 而不是 /usr/bin/php

然后检查是否启用了intl扩展, php -m | grep intl

这个对我有用。


4
投票

除了L. Grolleau says(运行brew install php71-intl)之外,将int.so路径粘贴到文件末尾的/php.ini

extension=/usr/local/Cellar/php71-intl/7.1.11_20/intl.so

4
投票

我在OS High Sierra上运行brew 1.6.2。到目前为止,brew包中没有intl扩展。

@Mondy解决方案对我来说很好。跑完之后

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

这些软件包将在/ usr / local / php5或/usr/local/php5-7.0.27-20180201-135220中提供。

因此,在/usr/local/etc/php/7.0/php.ini中,您可以放置​​以下行以启用intl扩展:

[intl]
extension="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20151012/intl.so"

在我的情况下,我更喜欢在/usr/local/etc/php/7.0/conf.d/中创建一个文件'ext-intl.ini',只是为了更好的组织。


3
投票

我找到了解决方案。

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

然后我将intl.so从安装复制到我的扩展目录,该目录已定义到我的php.ini中。


1
投票

我设法解决了这个问题。

首先卸载任何完全使用brew的php包,然后运行brew updatebrew doctor命令。

现在安装brew install [email protected](根据需要更改版本)intl包含在所有php公式的构建中。

要确认它正在运行php -m | grep intl。您将看到包含intl扩展名。如果没有检查php.ini文件并确保正在加载扩展。


0
投票

删除以下文件

rm /usr/local/etc/php/7.1/conf.d/ext-intl.ini

为我工作,感谢homebrew-core Issue


-4
投票

试试这个 :

brew install php71-intl
© www.soinside.com 2019 - 2024. All rights reserved.