Como resolver 'configure: error: Não é possível encontrar o evp.h' do OpenSSL?

30

Estou tentando recompilar o PHP, mas o ./configure falha em:

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

Eu tenho o LibSSL 1.0.0, o LibSSL 0.9.8, o LibSSL-Dev, o OpenSSL instalado.

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

quando tento com

--with-openssl

me diz:

configure: error: Não é possível encontrar as bibliotecas do OpenSSL

Onde os **** são o problema?

P.S. Php é 5.2.5, o SO é Ubuntu

    
por CappY 08.08.2012 / 12:54

10 respostas

44

O mesmo problema ocorreu em Ubuntu 12.04.1 LTS e foi resolvido com a emissão:

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

    
por 11.10.2012 / 17:15
17

Para construir o php-5.3 no Debian wheezy você precisa do seguinte para corrigir este erro.

apt-get install libssl-dev libsslcommon2-dev

Então você precisa configurar com o seguinte incluído

./configure --with-libdir=/lib/x86_64-linux-gnu ...
    
por 06.10.2013 / 19:28
11

Supondo que você já tenha as bibliotecas OpenSSL e os arquivos de cabeçalho (em sistemas rpm, estes últimos estão no pacote xxxx-devel) ...

O problema parece surgir de como configure resolve as dependências que são distribuídas pelo sistema de arquivos. Para compilar o código, o comutador precisa saber onde estão os cabeçalhos. Para vincular o código, o vinculador precisa saber onde estão as bibliotecas.

[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

O diretório include tem o arquivo de inclusão, mas pkg-config falha porque a biblioteca não é em / usr / include / openssl, está em / usr / lib

Executando configure novamente com / usr como o diretório:

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

O caminho passado como um argumento é pesquisado para encontrar os recursos relevantes.

    
por 29.09.2015 / 15:02
9

Para compilar o php-5.4.45 no debian 8.1 (Jessie) eu tive que:

apt-get install libssl-dev

Depois disso, eu poderia compilá-lo usando apenas --with-openssl

    
por 12.10.2015 / 12:47
8

Outra razão que o ./configure pode falhar é porque você não tem pkg-config instalado, como no meu caso com PHP7 e Debian Jessie:

sudo apt-get install pkg-config
    
por 04.11.2015 / 10:49
1

Corrigi o problema instalando bibliotecas extras

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
    
por 19.06.2017 / 20:09
0

Você precisa ajudar a configurar a localização do arquivo evp.h, porque, por padrão, ele procurará diretórios e adicionará sufixos codificados a eles para encontrá-los. Eu mantive os detalhes em minha página wiki para aqueles que querem entender a solução. Veja o que funcionou para mim:

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 (os caminhos são diferentes). Se isso não funcionou para você verifique a página wiki , ele irá ajudá-lo a descobrir que caminhos colocar. p>     

por 07.01.2016 / 16:43
0

Eu tive o mesmo problema no Fedora 19, apesar de ter o OpenSSL instalado.

Eu tive que instalar o openssl-devel.i686 que eu encontrei fazendo uma pesquisa genérica para todos os pacotes relacionados ao ssl:

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

Em seguida, executei o configure novamente com sucesso:

sudo ./configure --with-apxs2=/usr/bin/apxs --with-mysql --enable-mbstring --with-mysqli --with-openssl=/usr/
    
por 06.07.2016 / 13:54
0

Apenas o meu feedback: Depois de resolver este problema ssl deste post, eu desisti completamente de compilar o php 5.3 porque ele falhou ainda mais nas extensões zend dom no meio, eu encontrei alguns patches, e decidi apenas soltar esse barulho. Há o Ubuntu 12.04 que ainda tem 5.3.10 php a bordo. Seja cuidadoso, php-fpm volta então limpando variáveis de ambiente. Portanto, não fique surpreso quando você não puder passar variáveis globais do docker, por exemplo.

    
por 31.03.2017 / 20:51
0

On centos7 Instalar o openssl-devel yum install openssl-devel

    
por 28.01.2018 / 18:50