安装intl PHP扩展OSX High Sierra

Mon*_*ndy 23 php intl macos-high-sierra

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

Ste*_*667 50

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

就我而言,我在下面的代客+问题中遵循了Neodork评论的部分内容:

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

brew install php@7.1

将其升级到最新版本

brew upgrade php@7.1

Cellar中引用的符号链接:

brew link --overwrite --force php@7.1

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

echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

重新加载您的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

希望能帮助到你!

  • 对于那些像我一样熟悉的人,应该更新上面引用的 7.1 以引用您所需的版本。截至目前,Brew 找不到 7.1 参考,因为 7.4 正是我需要的。在继续之前,请仔细检查您所需的版本,这与我上一小时不同……;) (2认同)

jal*_*927 11

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

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

brew install php@7.1

您需要链接已安装的PHP版本 brew link php@7.1

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

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

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

这个对我有用.

  • 我现在尝试了很多解决方案,但这一个对我有用,非常感谢。 (3认同)

小智 10

打开终端然后输入:

brew search intl
Run Code Online (Sandbox Code Playgroud)

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

brew install homebrew/php/php71-intl
Run Code Online (Sandbox Code Playgroud)

然后重启apache

sudo apachectl restart
Run Code Online (Sandbox Code Playgroud)

然后输入:

php -i | grep intl
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

请享用!

  • 弃用php tap的人是一个完整的***.在最新的山脉更新和酿造升级后,一切都破裂了.如果你弃用某些东西而不赞成其他东西,请检查其他东西是否有效......如果有人设法再次运行并再次运行,请回复.我尝试通过pecl安装,但这只会引发更多错误. (9认同)
  • 自2018年4月1日起,自制软件/ php选项卡已被弃用.现在提供PHP及其扩展的新方式......一团糟.有些扩展是捆绑的,有些则不捆绑. (5认同)
  • `$ brew uninstall php71`然后`brew install php71 --with-pear` (4认同)
  • php已经转移到`homebrew/core`.公式重命名为`php @ 7.1`.它默认包含`intl`**,无需手动加载或安装扩展. (3认同)
  • @miguelr它正在工作,但是却收到有关PHP警告的大量警告:PHP启动:无法加载动态库'/usr/local/opt/php71-intl/intl.so'-dlopen(/ usr / local / opt / php71 -intl / intl.so,9):库未加载:/ usr / local / opt / icu4c / lib / libicui18n.60.dylib`。任何的想法? (3认同)

Mar*_*eng 7

在 Mac 上试试这个

php -v
sudo port install php7*-intl
Run Code Online (Sandbox Code Playgroud)

更多信息

您可以通过此页面https://www.macports.org/ports.php?by=name&substr=intl找到端口包

您可以port通过以下步骤安装:https : //guide.macports.org/chunked/installing.macports.html

curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.5.4.tar.bz2
tar xf MacPorts-2.5.4.tar.bz2
cd MacPorts-2.5.4/
./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

并更改 ~/.bash_profile

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
Run Code Online (Sandbox Code Playgroud)

如果有错误,请检查以下步骤:

检查端口

sudo port list
sudo port selfupdate
sudo port search --name --glob 'php*'
sudo port install php**-intl
Run Code Online (Sandbox Code Playgroud)

此页面包含有关端口使用的更多信息:https : //guide.macports.org/chunked/using.html


Lip*_*pdk 6

我在OS High Sierra上运行brew 1.6.2。到目前为止,Brew软件包中不提供intl扩展名。

@Mondy解决方案对我来说很好。运行后

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1
Run Code Online (Sandbox Code Playgroud)

这些软件包将在/ 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"
Run Code Online (Sandbox Code Playgroud)

就我而言,我更喜欢在/usr/local/etc/php/7.0/conf.d/中创建文件“ ext-intl.ini”,只是为了更好的组织。


Mon*_*ndy 3

我找到解决方案。

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1
Run Code Online (Sandbox Code Playgroud)

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