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抱怨无法找到公式,则可能是水龙头搞砸了。您可以尝试提供current php formula的完整路径,而不是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。链接Homebrew的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) 或,将/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已链接到/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")。注释掉那些找不到的。
自制程序权限
Some argue,对/usr/local进行装饰是个好主意。
sudo chown -R "$USER":admin /usr/local
这将使手动和通过Homebrew在这里进行安装变得容易得多,但安全性也有所降低,因为现在也允许在非root用户进程中进行写操作。
您的网络应用程序使用的是其他版本的PHP。
请确保它没有...此配置取决于所用的Web服务器。第一步是使用<?php phpinfo();在您的Web应用程序中输出当前PHP配置。
让网络服务器+ 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