` nicht finden?'/> ` nicht finden?'/> ` nicht finden?'/> So lösen Sie `configure: error: Kann OpenSSL's <evp.h>` nicht finden? | bridgeutopiaweb.com

Frage So lösen Sie `configure: error: Kann OpenSSL's ` nicht finden?


Ich versuche, PHP neu zu kompilieren, aber ./configure schlägt fehl bei:

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

Ich habe LibSSL 1.0.0, LibSSL 0.9.8, LibSSL-Dev, OpenSSL installiert.

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

wenn ich es versuche

--with-openssl

sagt mir:

configure: error: Die OpenSSL-Bibliotheken können nicht gefunden werden

Wo sind die **** das Problem?

P.S. PHP ist 5.2.5, OS ist Ubuntu


30
2017-08-08 10:54


Ursprung




Antworten:


Das gleiche Problem trat auf Ubuntu 12.04.1 LTS und es wurde gelöst durch die Ausgabe von:

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


44
2017-10-11 15:15



Hallo :) Ich habe vergessen, wie ich mein Problem löse. :) Es war vor einem halben Jahr. - CappY
Wie ist libcurl4-openssl-dev anders als libssl-dev? - Gherman


Um PHP-5.3 auf Debian Wheezy zu erstellen, benötigen Sie Folgendes, um diesen Fehler zu beheben.

apt-get install libssl-dev libsslcommon2-dev

Dann müssen Sie mit den folgenden enthalten konfigurieren

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

17
2017-10-06 17:28



1+, hat mir sehr geholfen. Ich musste auch hinzufügen --with-php-config /usr/local/src/php-x.x.x/scripts/php_config. Ich habe eine geschrieben Wie kompiliere ich PHP mit Erweiterungen. - DanFromGermany
funktioniert, aber alle Testfälle sind fehlgeschlagen. - Rafael
Funktioniert für PHP5.2 Handbuch kompilieren auf Ubuntu 14.04 mit "- mit-openssl" Direktive. Danke vielmals. - Dr I


Angenommen, Sie haben bereits die OpenSSL-Bibliotheken und Header-Dateien (auf RPM-Systemen befinden sich diese im xxxx-devel-Paket) ...

Das Problem scheint sich daraus zu ergeben configure löst Abhängigkeiten auf, die um das Dateisystem herum verteilt sind. Um den Code zu kompilieren, muss der Comiler wissen, wo sich die Header befinden. Um den Code zu verknüpfen, muss der Linker wissen, wo sich die Bibliotheken befinden.

[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

Das include-Verzeichnis enthält die Include-Datei, aber pkg-config schlägt fehl, weil die Bibliothek ist nicht in / usr / include / openssl, in / usr / lib

Configure erneut mit / usr als Verzeichnis ausführen:

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

Der als Argument übergebene Pfad wird durchsucht, um die relevanten Ressourcen zu finden.


11
2017-09-29 13:02



Das hat für mich funktioniert. Dies ist eine gute Lösung. - Shawn Welch
Dies war eine Lösung auf Debian Wheezy + PHP 5.3.10! Vielen Dank!!!! - holms
@holms: Das ist jetzt eine ziemlich alte Version von PHP. Insbesondere wenn Sie kompilierte Quellen anstelle von verwalteten Paketen verwenden, sollten Sie eine aktuelle Version verwenden. - symcbean
Das war die Lösung für mich zu bauen php-7.1.12 auf Debian Jessie. Vielen Dank - ako


Um auf Debian 8.1 (Jessie) php-5.4.45 zu kompilieren, musste ich:

apt-get install libssl-dev

Danach konnte ich es einfach mit --with-openssl


9
2017-10-12 10:47





Ein anderer Grund ./configure könnte scheitern, weil du es nicht hast pkg-config installiert, wie in meinem Fall mit PHP7 und Debian Jessie:

sudo apt-get install pkg-config

8
2017-11-04 09:49



Darauf wurde bereits vor drei Jahren in einer anderen Antwort hingewiesen. - kasperd
Hat den Trick gemacht. Vielen Dank. - Sinan Eldem


Ich habe das Problem behoben, indem ich zusätzliche Bibliotheken installiert habe

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

1
2018-06-19 18:09





Sie müssen beim Konfigurieren helfen, wo Sie nach der Datei "evp.h" suchen müssen, da standardmäßig nach Verzeichnissen gesucht wird und ihnen fest codierte Suffixe hinzugefügt werden, um sie zu finden. Ich habe die Details gespeichert meine Wiki-Seite für diejenigen, die die Lösung verstehen wollen. Folgendes hat für mich funktioniert:

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 (Pfade sind unterschiedlich). Wenn das nicht für dich funktioniert hat Überprüfen Sie die Wiki-SeiteEs wird Ihnen helfen, herauszufinden, welche Wege Sie einschlagen müssen.


0
2018-01-07 15:43