php - 在 MAMP mac 系统上安装 intl.so 扩展
问题描述
所以我无法安装我的 phpUnit 测试所需的 intl.so 扩展。我的系统
- macOS 莫哈韦
- PHP 7.1.19 安装在 /usr/bin/php
php -m | grep intl
什么都不返回。
所以我尝试安装 intl
sudo /Users/beatgurtner/pear/bin/pecl install intl
此命令询问 ICU 路径:
Specify where ICU libraries and headers can be found [DEFAULT]
我输入:
/usr/local/Cellar/icu4c/62.1
最后以错误告终:
configure: creating ./config.status
config.status: creating config.h
running: make
/bin/sh /private/tmp/pear/install/pear-build-rootBSsAtU/intl-3.0.0/libtool --mode=compile cc -I/usr/local/Cellar/icu4c/62.1/include -Wno-write-strings -I. -I/private/tmp/pear/install/intl -DPHP_ATOM_INC -I/private/tmp/pear/install/pear-build-rootBSsAtU/intl-3.0.0/include -I/private/tmp/pear/install/pear-build-rootBSsAtU/intl-3.0.0/main -I/private/tmp/pear/install/intl -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/local/Cellar/icu4c/62.1/include -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/install/intl/php_intl.c -o php_intl.lo
mkdir .libs
cc -I/usr/local/Cellar/icu4c/62.1/include -Wno-write-strings -I. -I/private/tmp/pear/install/intl -DPHP_ATOM_INC -I/private/tmp/pear/install/pear-build-rootBSsAtU/intl-3.0.0/include -I/private/tmp/pear/install/pear-build-rootBSsAtU/intl-3.0.0/main -I/private/tmp/pear/install/intl -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/local/Cellar/icu4c/62.1/include -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/install/intl/php_intl.c -fno-common -DPIC -o .libs/php_intl.o
In file included from /private/tmp/pear/install/intl/php_intl.c:25:
/private/tmp/pear/install/intl/php_intl.h:23:10: fatal error: php.h file not found
include <php.h>
^~~~~~~
1 error generated.
make: *** [php_intl.lo] Error 1
ERROR: make failed
我的 xcode 是最新的!
如何在我的 Mac 上安装带有 intl 扩展名的 php7?!?
谢谢您的帮助!
更新:
我尝试过的其他解决方案对我不起作用:
pecl install memcached
(https://stackoverflow.com/a/51265080/2839368)
brew install php70-intl
(https://stackoverflow.com/a/44523507/2839368)
我从中得到的错误:
Error: No available formula with the name php71-intl
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
git -C $(brew --repo homebrew/core) fetch --unshallow
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.
建议的另一件事:`curl -s https://php-osx.liip.ch/install.sh | bash -s 7.2 [警告] 检测到 macOS Mojave 10.14。由于原始 apache 不再加载外部库,因此存在严重问题。如果您继续,apache 中的 PHP 肯定不会再工作了!cli版本仍然会。有关详细信息和讨论,请参阅https://github.com/liip/php-osx/issues/249上的此问题
所以没有任何效果......请删除重复的标记!
解决方案:好的。所以有时它可能很简单:我只是从下载 intl.so 文件
https://github.com/skmedia/php-extensions-mamp/blob/master/php-5.4.4/intl.so
并将其复制到/usr/lib/php/extensions/no-debug-non-zts-20160303
!
重新启动,现在它可以工作了......
解决方案
推荐阅读
- android - 从三星 S10 Android 手机开始时,应用程序未在 Google Play 商店中列出
- python - 访问在本地 HTTP 主机上运行的视频流
- python - 私人聊天消息 django 如 facebook
- api - 如何将api输出json转换为csv文件
- javascript - 如何检查一个数组是否包含另一个数组的任何值
- asp.net-core - 没有可用于指定 RuntimeIdentifier 'browser-wasm' 的 Microsoft.AspNetCore.App 运行时包
- java - If line.startsWith("something") don't write this line nor the next line
- karate - 我对仅在空手道中包含的功能有疑问?
- java - 我有一个返回 int 的方法,它告诉我我缺少一个 return 语句。可以在不重写方法的情况下解决这个问题吗?
- sql-server - 使用 SQL Server Management Studio 为表中的前 100 个值创建脚本