回答:
Debian wheezyでphp-5.3をビルドするには、このエラーを修正するために以下が必要です。
apt-get install libssl-dev libsslcommon2-dev
次に、以下を含めて構成する必要があります
./configure --with-libdir=/lib/x86_64-linux-gnu ...
--with-php-config /usr/local/src/php-x.x.x/scripts/php_config
。拡張機能を使用してPHPをコンパイル
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 /含ん/ 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
...
引数として渡されたパスは、関連するリソースを見つけるために検索されます。
php-7.1.12
たDebian Jessie
。ありがとう
別の理由で./configure
失敗する可能性があるのはpkg-config
、PHP7とDebian Jessieの場合のように、インストールしていないためです。
sudo apt-get install pkg-config
centos7にopenssl-develをインストールします
yum install openssl-devel
デフォルトではディレクトリをスキャンし、ハードコードされたサフィックスを追加してそれを見つけるため、evp.hファイルを探す場所を見つけるのを支援する必要があります。ソリューションを理解したい人のために、wikiページに詳細を保管しました。私のために働いたものは次のとおりです:
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/