安装pecl_http:安装了raphf,但./configure没有看到它

时间:2014-11-12 20:40:26

标签: php pecl

我正在尝试安装pecl_http作为php的扩展。

phpise工作正常,因为我正在获取配置文件。当我输入./configure时,我收到以下错误消息;

...
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for gnutls support in libcurl... no
checking for ares support in libcurl... no
checking for bundled SSL CA info... /etc/ssl/certs/ca-certificates.crt
checking for event2/event.h... found in /usr
checking for libevent version, roughly... 2.0.19-stable
checking for ext/raphf support... no
configure: error: Please install pecl/raphf and activate extension=raphf.so in your php.ini

我已将以下行添加到我的php.ini文件

extension=raphf.so

我知道raphf已安装并加载,因为我已使用以下php检查它:

echo extension_loaded(raphf) ? "raphf loaded" : "raphf not loaded";

它回来了它被加载。

为什么./configure没有看到raphf?

3 个答案:

答案 0 :(得分:2)

如果有人仍然对如何解决这个问题感兴趣,我只想出一个解决方案。 pecl_http的配置脚本查找要启用的模块,而不是apache php模块,但是对于php命令行界面。如果你运行php -m,你会看到raphf和propro都没有启用。要使CLI启用此模块,您必须添加:

extension=raphf.so
extension=propro.so

在/etc/php5/cli/php.ini中,因为这是初始化文件,php CLI在启动时运行。在那之后,你将解决问题。

答案 1 :(得分:0)

我遇到了同样的问题,但Dechcaudron提供的解决方案还没有解决问题。这里没有答案:Ubuntu pecl install pecl_http fail

我发现php-config --php-binary返回NONE而不是php的二进制文件。因为configure脚本使用此命令获取php二进制文件,然后调用$PHP_EXECUTABLE -m | $EGREP ^raphf$,它认为raphf尚未加载。解决方案是操作配置脚本,以便它为php使用正确的二进制文件。

~# pecl download pecl_http
~# tar -xf pecl_http-2.5.3.tgz
~# cd pecl_http-2.5.3
~/pecl_http-2.5.3# phpize --clean
~/pecl_http-2.5.3# phpize
~/pecl_http-2.5.3# sed "s/^PHP_EXECUTABLE=.*$/PHP_EXECUTABLE=\"\/usr\/bin\/php\"/g" -i configure
~/pecl_http-2.5.3# ./configure
~/pecl_http-2.5.3# make
~/pecl_http-2.5.3# make install

然后将extension=http.so添加到php.ini中以获取apache2和cli以及您的完成情况。 提示:通常情况下,您可以使用which php找到php二进制文件的正确路径。

答案 2 :(得分:0)

在过去的几个月里,我一直在绞尽脑汁解决这个问题。该问题的解决方案可能只涉及卸载模块。出于某种原因,pecl仍然认为该模块是真的没有安装的。

因此,我的工作是确认pecl是否仍然认为使用pecl list安装了它。如果它列出,则使用pecl uninstall [modulename]卸载模块。一旦我卸载它,我终于能够安装raphf。