我正在尝试安装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?
答案 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。