mac php intl.so,php - Mac OS:未加载Intl扩展名 - 堆栈内存溢出

Brew的PHP 7.1,7.2和7.3 默认都启用了INTL 。

最有可能的是,您只是使用Mac OS的捆绑版PHP。

ls -l $(which php)

找出当前PHP二进制文件的位置以及是否符号链接到Brew安装。 就我而言,例如:

lrwxr-xr-x 1 27 May 23 16:30 /usr/local/bin/php -> ../Cellar/php/7.3.5/bin/php

这意味着我的php链接到Brew的7.3.5版本。

如果你不使用Brew的PHP,你会看到类似的东西

-rwxr-xr-x 1 11169664 Mar 21 07:09 /usr/bin/php

通过Brew安装PHP

了解您是否已安装PHP:

brew list | grep php

如果有任何输出,并且您的PHP版本存在,请转到步骤2,或使用步骤1将PHP更新到最新版本。

1.安装Homebrew的PHP

brew install php@7.3

(或7.2,7.1)。 如果Brew抱怨无法找到公式,那么你可能会对水龙头搞砸了。 而不是php@7.3 ,你可以尝试提供当前php公式的完整路径:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/php.rb

仍然无法正常工作,请检查您是否正在运行最新版本的Homebrew brew --version 。

Homebrew 2.1.3-31-geaf2370

Homebrew/homebrew-core (git revision fd1ef; last commit 2019-05-25)

Homebrew/homebrew-cask (git revision 16d50; last commit 2019-05-26)

2.链接Homebrew的PHP

现在,要让php '在你的路径中',有两种选择。

一) 无论是自制的版本,必须从它的安装位置(在/ usr / local / bin目录/库/ PHP的....)被链接到一个目录在你的路径(例如,在/ usr / local / bin目录)。 为此,请运行:

brew link --force php@7.3

如果无法链接,则通常是由设置权限或系统完整性保护引起的。 在第一种情况下,尝试sudo chown "$USER":admin /usr/local/bin/php 。

b) 或者 ,将/usr/local/opt/php@7.3目录( 例如,对于Bash :

echo 'export PATH="/usr/local/opt/php@7.3/bin:/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.bash_profile

source ~/.bash_profile

3.验证安装

ls -l $(which php)

应该表明php链接到/usr/local/bin/Cellar的Homebrew PHP安装。

php -v

应该显示最近安装的PHP版本。 如果不是这样,请尝试重新启动终端。

php -i | grep -i intl

应显示有关当前安装的intl一些信息。

如果您正在使用Web服务器和/或PHP FPM,则需要重新启动这些服务。 (或者重启你的系统,如果你不知道如何做到这一点,也无法搞清楚)。

可能的问题

如果你仍然收到有关缺少扩展的警告(无法加载动态库等),那么你的php.ini就搞砸了。

找到php的ini的当前位置

$ php -i | grep \.ini

Configuration File (php.ini) Path => /usr/local/etc/php/7.3

Loaded Configuration File => /usr/local/etc/php/7.3/php.ini

Scan this dir for additional .ini files => /usr/local/etc/php/7.3/conf.d

Additional .ini files parsed => /usr/local/etc/php/7.3/conf.d/ext-opcache.ini

....

编辑/usr/local/etc/php/7.3/php.ini并找到有问题的扩展加载(例如, extension="myext.so" )。 评论那些无法找到的。

自制权限

有些人认为 chown /usr/local是个好主意。

sudo chown -R "$USER":admin /usr/local

这将使得在这里,通过手工和通过Homebrew安装更容易,但也有点不太安全,因为现在也允许非root进程写入此处。

您的Web应用程序使用的是不同版本的PHP。

确保它没有...这个配置取决于使用过的网络服务器。 第一步是使用<?php phpinfo();在您的Web应用程序中输出当前的PHP配置<?php phpinfo(); 。

另一种让Web服务器+ PHP堆栈运行的方法是使用Laravel Valet 。

安装其他扩展

要安装其他PHP扩展,请使用PEAR。

pear -V应该输出当前的PEAR和PHP版本。

PEAR Version: 1.10.9

PHP Version: 7.3.5

Zend Engine Version: 3.3.5

现在,要安装扩展,例如PHP的yaml扩展:

pear install yaml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值