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
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
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
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 ...
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.
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
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
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
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>
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/
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.
On centos7 Instalar o openssl-devel
yum install openssl-devel