php - 将 MacOS 更新到 Mojave (10.14) 后,PECL 扩展安装失败

标签 php symfony pear pecl macos-mojave

我使用我的 Mac 开发了三个项目:一个 Android 应用程序、一个 iPhone 应用程序和一个 Symfony 项目。

我的 Symfony 项目使用了 Redis 和 APCu 扩展。这是通过 PECL 安装的(6 个月前):

sudo pecl install redis

sudo pecl install apcu

昨天,在将我的 mac 更新到 Mojave 后,并尝试像往常一样启动我的 PHP 内置 Web 服务器,我收到以下错误:

Attempted to load class "Redis" from the global namespace. Did you forget a "use" statement?

我还注意到 php.ini 在安装过程中被删除了,所以我使用 php.ini-previous 来生成 php.ini 再次。

还重新安装了命令行工具(在安装过程中被删除):

xcode-select --install

最后,我再次尝试通过 PECL 安装 redis 扩展:

sudo pecl install redis

这次 PECL 抛出一个错误:

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
running: make
/bin/sh /private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/libtool --mode=compile cc  -I. -I/private/tmp/pear/temp/redis -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/include -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/main -I/private/tmp/pear/temp/redis -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  -DHAVE_CONFIG_H  -g -O2   -c /private/tmp/pear/temp/redis/redis.c -o redis.lo
mkdir .libs
cc -I. -I/private/tmp/pear/temp/redis -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/include -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/main -I/private/tmp/pear/temp/redis -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 -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/temp/redis/redis.c  -fno-common -DPIC -o .libs/redis.o
In file included from /private/tmp/pear/temp/redis/redis.c:27:
/private/tmp/pear/temp/redis/common.h:1:10: fatal error: 'php.h' file not found
#include "php.h"
         ^~~~~~~
1 error generated.
make: *** [redis.lo] Error 1
ERROR: `make' failed

如何解决这个问题?

最佳答案

运行以下命令将重新安装开发人员工具头文件并修复问题。

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

关于php - 将 MacOS 更新到 Mojave (10.14) 后,PECL 扩展安装失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52512803/

相关文章:

php - 在php中将字符串转换为日期类型

php - mysql 中的 store_result() 和 get_result() 返回 false

php - 在 Silex 中检测环境类型(生产、开发或暂存)

php - Doctrine2 ORM 不会刷新在脚本之外更改的对象

symfony - 通过 Twig 同时使用 3 个模板

deployment - 使用PEAR部署PHP Web应用程序?

php - 专门在 Woocommerce 3 中创建订单的 Hook

PHP源码加密——效果与缺点

php - 打开失败需要 'HTTP/Request2.php' (include_path ='.;C:\php5\pear')

php - 使用 PEAR 从数据库生成 Excel