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です
同じ問題がUbuntu 12.04.1 LTS
でも発生し、次のコマンドを発行することで解決しました:
Sudo apt-get install libcurl4-openssl-dev pkg-config
Debian wheezyでphp-5.3をビルドするには、このエラーを修正するために次のものが必要です。
apt-get install libssl-dev libsslcommon2-dev
次に、以下を含めて構成する必要があります
./configure --with-libdir=/lib/x86_64-linux-gnu ...
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
...
引数として渡されたパスは、関連するリソースを見つけるために検索されます。
./configure
が失敗するもう1つの理由は、PHP [7]とDebian Jessieの場合のように、pkg-config
がインストールされていないためです。
Sudo apt-get install pkg-config
Debian 8.1(Jessie)でphp-5.4.45をコンパイルするには、次のようにする必要がありました。
apt-get install libssl-dev
その後、--with-openssl
を使用してコンパイルできます
追加のライブラリをインストールして問題を修正しました
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
Centos7にopenssl-devel yum install openssl-devel
をインストールします
ちょうど私のフィードバック:このsslの問題をこの投稿から解決した後、中央のzend dom拡張機能でさらに失敗したため、php 5.3のコンパイルを完全に中止しました。 。まだ5.3.10 phpを搭載しているubuntu 12.04があります。 php-fpmに注意して、環境変数をクリアしてください。たとえば、Dockerからグローバル変数を渡すことができない場合でも驚かないでください。
デフォルトでは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ページを確認してください は、どのパスを配置するかを理解するのに役立ちます。
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/