Im essayant de recompiler PHP, mais ./configure échoue à:
configure: error: Cannot find OpenSSL's <evp.h>
J'ai installé LibSSL 1.0.0, LibSSL 0.9.8, LibSSL-Dev, OpenSSL.
--with-openssl=/usr/include/openssl
quand j'essaye avec
--with-openssl
dit moi:
configure: erreur: impossible de trouver les bibliothèques d'OpenSSL
Où les **** sont le problème?
P.S. Php est 5.2.5, OS est Ubuntu
Le même problème s'est produit le Ubuntu 12.04.1 LTS
et il a été résolu en publiant:
Sudo apt-get install libcurl4-openssl-dev pkg-config
Pour construire php-5.3 sur Debian Wheezy, vous avez besoin des éléments suivants pour corriger cette erreur.
apt-get install libssl-dev libsslcommon2-dev
Ensuite, vous devez configurer avec les éléments suivants inclus
./configure --with-libdir=/lib/x86_64-linux-gnu ...
En supposant que vous disposez déjà des bibliothèques OpenSSL et des fichiers d'en-tête (sur les systèmes rpm, ces derniers sont dans le package xxxx-devel) ...
Le problème semble provenir de la façon dont configure
résout les dépendances qui sont réparties autour du système de fichiers. Pour compiler le code, le compilateur doit savoir où sont les en-têtes. Pour lier le code, l'éditeur de liens doit savoir où se trouvent les bibliothèques.
[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
Le répertoire include contient le fichier include, mais pkg-config échoue car la bibliothèque est pas dans/usr/include/openssl, dans/usr/lib
Exécutez à nouveau configure avec/usr comme répertoire:
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
...
Le chemin passé en argument est recherché pour trouver les ressources pertinentes.
Une autre raison ./configure
peut échouer parce que vous n'avez pas pkg-config
installé, comme dans mon cas avec PHP7 et Debian Jessie:
Sudo apt-get install pkg-config
Pour compiler php-5.4.45 sur debian 8.1 (Jessie) j'ai dû:
apt-get install libssl-dev
Après cela, je pourrais le compiler en utilisant simplement --with-openssl
J'ai résolu le problème en installant des bibliothèques supplémentaires
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
Sur centos7, installez openssl-devel yum install openssl-devel
Juste mes commentaires: après avoir résolu ce problème ssl à partir de ce post, j'ai complètement abandonné la compilation de php 5.3 car il a échoué sur les extensions zend dom au milieu, j'ai trouvé des correctifs et j'ai décidé de laisser tomber . Il y a Ubuntu 12.04 qui a toujours 5.3.10 php à bord. Soyez prudent php-fpm à l'époque effacer les variables d'environnement. Ne soyez donc pas surpris lorsque vous ne pouvez pas passer de variables globales depuis docker par exemple.
Vous devez aider à configurer la recherche du fichier evp.h, car par défaut, il recherchera les répertoires et leur ajoutera des suffixes codés en dur pour le trouver. J'ai gardé les détails dans ma page wiki pour ceux qui veulent comprendre la solution. Voici ce qui a fonctionné pour moi:
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 (les chemins sont différents). Si cela n'a pas fonctionné pour vous consultez la page wiki , cela vous aidera à déterminer les chemins à mettre.
J'ai eu le même problème sur Fedora 19 malgré l'installation d'OpenSSL.
J'ai dû installer openssl-devel.i686 que j'ai trouvé en faisant une recherche générique pour tous les paquets liés à ssl:
Sudo yum search ssl
Sudo yum install openssl-devel.i686
Ensuite, j'ai à nouveau exécuté configure avec succès:
Sudo ./configure --with-apxs2=/usr/bin/apxs --with-mysql --enable-mbstring --with-mysqli --with-openssl=/usr/