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
这意味着我的链接到Brew的7.3.5版本。php
如果你没有使用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. 安装自制的 PHP
brew install php@7.3
(或 7.2、7.1)。如果 Brew 抱怨找不到公式,您可能搞砸了水龙头。而不是 ,您可以尝试提供当前 php 公式的完整路径:php@7.3
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. 链接自制的PHP
现在,要“在你的道路上”,有两个选择。php
a) 任何一个自制版本都必须从其安装位置(/usr/local/bin/Cellar/php....)链接到路径中的目录(例如,/usr/local/bin)。为此,请运行:
brew link --force php@7.3
如果无法链接,这通常是由设置的权限或系统完整性保护引起的。在第一种情况下,请尝试 。sudo chown "$USER":admin /usr/local/bin/php
b) 或者,将目录(选择前缀)添加到$PATH变量。例如,对于 Bash:/usr/local/opt/php@7.3
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 安装。php
/usr/local/bin/Cellar
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"
自制权限
有些人认为,扼杀是个好主意。/usr/local
sudo chown -R "$USER":admin /usr/local
这将使手动和通过Homebrew在这里安装东西变得更加容易,但也不太安全,因为现在也允许非root进程在这里编写。
您的 Web 应用程序使用的是不同版本的 PHP。
确保它不会...此配置的配置取决于所使用的 Web 服务器。第一步是使用 在 Web 应用程序中输出当前的 PHP 配置。<?php phpinfo();
这解释了Apache的步骤。
让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