在尝试安装pecl扩展时,Mac OS X 10.7.3上出现$PHP_AUTOCONF错误。

110
我正在尝试在我的机器上设置pecl_http和memcache,但在两种情况下都遇到类似的错误。这是在MAC OS X 10.7.3(lion)上,我也安装了XCODE。在运行这些命令之前,我还安装了Zend Server社区版,并设置了CFLAGS ='-arch i386 - arch x86_64'环境变量。所以请帮助我需要做什么。
bash-3.2# **sudo pecl install pecl_http-1.7.1**
downloading pecl_http-1.7.1.tgz ...
Starting to download pecl_http-1.7.1.tgz (174,098 bytes)
.....................................done: 174,098 bytes
71 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
ERROR: `phpize' failed

4
在运行命令之前,您是否尝试过设置export PHP_AUTOCONF=/usr/bin/autoconf?当然,假设$PHP_AUTOCONF应该是autoconf二进制文件的路径,它应该可以找到,但也许它只需要一点帮助 :-) - prodigitalson
@prodigitalson,那个路径中没有 /usr/bin/autoconf。你认为这可能是原因吗?那我该如何安装 autoconf 呢?谢谢。 - krishna
1
是的,你需要使用autoconf。奇怪的是,我在我的10.7和10.6系统上都有它。我想你得手动下载并构建它。或者你可以选择简单的方式,使用Macports、Homebrew或Fink。 - prodigitalson
我尝试了获取Homebrew和Ports,但仍然没有帮助。然后我尝试从XCODE 4.3降级到4.2.1,从那时起一切都很顺利。不再有错误:)。我更新了我的答案。 - krishna
1
我升级了XCode,但在将/Developer/usr/bin/添加到$PATH之前,我仍然遇到了相同的问题。 - Eduardo Romero
由于这个标签是autoconf,因此它确实值得一提的是,这个安装过程完全违背了autoconf的哲学和目的。任何需要安装程序运行autoconf的安装过程都是完全错误的。autoconf的整个目的是允许开发人员创建一个tarball,可以用来构建项目而不需要在目标系统上安装autoconf。这让我感到非常悲伤,因为这已经变得如此普遍。如果您要求用户安装autoconf,则您的分发版是有问题的! - William Pursell
6个回答

319
brew install autoconf

更简单的解决方案


2
由于您没有权限,否则将无法链接,这可能看起来像未工作。请使用“sudo brew install autoconf”命令进行安装。 - Mc-
25
不应该使用sudo brew install来安装任何东西。事实上,我认为这种方式现在已经失败了。 - Bob Spryn
如果您尚未安装brew,您可以从此处进行安装http://brew.sh/index_es.html。 - Ricardo
我也遇到了与@krishna相同的问题。我按照您说的方法使用brew,并创建了一个变量export PHP_AUTOCONF=/usr/bin/autoconf以确保它可以正常工作。只需在php.ini末尾添加extension=apcu.so即可。 - Joabe da Luz
它可以工作,但首先需要获取/usr/local/Cellar的所有权:https://dev59.com/AG445IYBdhLWcg3wirAi - Jennie Ji
显示剩余4条评论

93
你需要安装autoconfig。我通常喜欢从源代码安装库。因此,你可以执行以下步骤:
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
tar xzf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr/local
make
sudo make install

我刚刚在使用Mountain Lion时遇到了这个问题。


3
对于像我这样新手的蠢货来说,确保你在 /usr/bin/ 文件夹中执行上述操作。 - Bill Ortell
6
这不一定要在 /usr/bin 文件夹中制作。如果你理解了所给的命令,你会注意到你正在下载一些文件(使用curl),解压它们(tar),将安装配置到你的机器需求上(./configure),编译它(make)并安装库(make install)。安装过程应该会自动将文件复制到需要的位置。但是,非常重要的是,你需要在最后一个命令前加上 "sudo",这样你就可以获得复制这些文件所需的权限。 - Ares
2
@Kevin,所以使用通配符会自动选择“更高”的版本?我今天学到了一些东西! - Ares
1
@Ares 压缩文件的链接已失效。 - Seth
1
我在弄清楚这个问题上花了比我想象中更长的时间。你救了我的一天。它也适用于10.12.x版本。 - TheValyreanGroup
显示剩余7条评论

55

在Mac OS X 10.8上情况略有不同。来自Bob Spryn的高票解决方案不起作用,因为它没有创建符号链接,所以在安装autoconf之后,你应该创建它们:

sudo ln -s /usr/local/Cellar/autoconf/2.69/bin/autoconf /usr/bin/autoconf
sudo ln -s /usr/local/Cellar/autoconf/2.69/bin/autoheader /usr/bin/autoheader

我知道这个问题是针对10.7的,但我希望我的回答对于使用10.8的人有所帮助。 :)

更新:在10.10 Yosemite上也适用。


1
感谢@anton-babenko,在使用homebrew安装了autoconf之后,这对我很有效。 - Huafu
这个修复程序适用于升级后安装了autoconf和brew的OSX。 - Jose Muanis
1
在Yosemite上对我有用。 - markwalker_
1
在El Capitan上出现以下错误:sudo ln -s /usr/local/Cellar/autoconf/2.69/bin/autoconf /usr/bin/autoconf ln: /usr/bin/autoconf: Operation not permitted。有什么想法吗? - Arun Gupta
在我的10.14上运行良好。 - Bharat Modi

15
或者
sudo port install autoconf

如果您使用Macports


4
XCODE 4.3没有将所有的autoconf等工具放在Developer文件夹中。它甚至不会在MACINTOSH HD中创建该文件夹。我不得不降级到安装了一切所需内容的XCODE 4.2.1,现在我看不到任何错误。
此外,这里有一个有用的参考资料

0

也许你需要使用brew link autoconf来链接autoconf。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接