如何解决“配置:错误:找不到 OpenSSL”`?

如何解决“配置:错误:找不到 OpenSSL”`?

我试图重新编译 PHP,但是 ./configure 失败:

configure: error: Cannot find OpenSSL's <evp.h>

我安装了 LibSSL 1.0.0、LibSSL 0.9.8、LibSSL-Dev 和 OpenSSL。

--with-openssl=/usr/include/openssl

当我尝试

--with-openssl

告诉我:

配置:错误:找不到 OpenSSL 的库

问题到底出在哪里?

PS Php 是 5.2.5,操作系统是 Ubuntu

答案1

发生了相同的问题Ubuntu 12.04.1 LTS,并通过发出以下命令解决了该问题:

sudo apt-get install libcurl4-openssl-dev pkg-config

答案2

要在 Debian wheezy 上构建 php-5.3,您需要执行以下操作来修复此错误。

apt-get install libssl-dev libsslcommon2-dev

然后你需要配置以下内容

./configure --with-libdir=/lib/x86_64-linux-gnu ...

答案3

假设您已经拥有 OpenSSL 库和头文件(在 rpm 系统上后者位于 xxxx-devel 包中)...

问题似乎出在如何configure解决文件系统中分布的依赖关系。要编译代码,编译器需要知道头文件的位置。要链接代码,链接器需要知道库的位置。

[colin@host]$ configure .... --with-openssl-dir=/usr/include/openssl ....
...
checking OpenSSL dir for FTP... /usr/include/openssl
checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>

[colin@host]$ find /usr/include -name evp.h
/usr/include/openssl/evp.h

include 目录包含包含文件,但是 pkg-config 失败,因为库是不是在 /usr/include/openssl 中,它在 /usr/lib 中

再次以 /usr 作为目录运行 configure:

configure .... --with-openssl-dir=/usr ....
...
checking OpenSSL dir for FTP... /usr
checking for pkg-config... /usr/bin/pkg-config
checking for OpenSSL version... >= 0.9.6
checking for CRYPTO_free in -lcrypto... yes
...

搜索作为参数传递的路径来查找相关资源。

答案4

另一个./configure可能失败的原因是您没有pkg-config安装,就像我安装 PHP7 和 Debian Jessie 的情况一样:

sudo apt-get install pkg-config

相关内容