web-dev-qa-db-ja.com

`configure:error:Ca n't find OpenSSL's <evp.h>`を解決するには?

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のライブラリが見つかりません

****はどこに問題がありますか?

追伸PHPは5.2.5、OSはUbuntuです

33
CappY

同じ問題がUbuntu 12.04.1 LTSでも発生し、次のコマンドを発行することで解決しました:

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

47
antila

Debian wheezyでphp-5.3をビルドするには、このエラーを修正するために次のものが必要です。

apt-get install libssl-dev libsslcommon2-dev

次に、以下を含めて構成する必要があります

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

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

インクルードディレクトリにはインクルードファイルがありますが、ライブラリがnot/usr/include/opensslにあり、/ usr/libにあるため、pkg-configは失敗します

/ usrをディレクトリとして設定を再度実行します。

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
...

引数として渡されたパスは、関連するリソースを見つけるために検索されます。

12
symcbean

./configureが失敗するもう1つの理由は、PHP [7]とDebian Jessieの場合のように、pkg-configがインストールされていないためです。

Sudo apt-get install pkg-config
10
Razvan Grigore

Debian 8.1(Jessie)でphp-5.4.45をコンパイルするには、次のようにする必要がありました。

apt-get install libssl-dev

その後、--with-opensslを使用してコンパイルできます

9
steven

追加のライブラリをインストールして問題を修正しました

Sudo apt-get install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev
Sudo apt-get install -y libcurl4-openssl-dev pkg-config
Sudo apt-get install -y libsasl2-dev
2
Toir427

Centos7にopenssl-devel yum install openssl-develをインストールします

ちょうど私のフィードバック:このsslの問題をこの投稿から解決した後、中央のzend dom拡張機能でさらに失敗したため、php 5.3のコンパイルを完全に中止しました。 。まだ5.3.10 phpを搭載しているubuntu 12.04があります。 php-fpmに注意して、環境変数をクリアしてください。たとえば、Dockerからグローバル変数を渡すことができない場合でも驚かないでください。

0
holms

デフォルトではevp.hファイルを探す場所を特定するための設定を支援する必要があります。デフォルトでは、ディレクトリがスキャンされ、ハードコードされたサフィックスがディレクトリに追加されるためです。解決策を理解したい人のために、詳細を my wiki page に記載しました。これが私のために働いたものです:

root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # PHP_OPENSSL_DIR="/usr /usr/lib/x86_64-linux-gnu"
root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # ./configure --with-libdir=""
[...]
checking for DSA_get_default_method in -lssl... yes
checking for X509_free in -lcrypto... yes
checking for pkg-config... /usr/bin/pkg-config
checking for OpenSSL version... >= 0.9.6 #                     <------------------------------------- YES !
[...]
config.status: creating config.h
config.status: config.h is unchanged
root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # 

YMMV(パスは異なります)。それがうまくいかなかった場合 wikiページを確認してください は、どのパスを配置するかを理解するのに役立ちます。

0
ychaouche

OpenSSLがインストールされているにもかかわらず、Fedora 19でも同じ問題が発生しました。

私は、sslに関連するすべてのパッケージの一般的な検索を実行して見つけたopenssl-devel.i686をインストールする必要がありました。

Sudo yum search ssl
Sudo yum install openssl-devel.i686

次に、configureを正常に実行しました。

Sudo ./configure --with-apxs2=/usr/bin/apxs --with-mysql --enable-mbstring --with-mysqli --with-openssl=/usr/
0
Anthony