PHP Startup Não foi possível carregar a biblioteca dinâmica

0

Estou recebendo este erro no meu log de erro do apache ao tentar fazer o cURL funcionar no PHP:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/curl.so' - /usr/lib/php5/20121212/curl.so: symbol curl_easy_pause, version CURL_OPENSSL_3 not defined in file libcurl.so.4 with link time reference in Unknown on line 0

O arquivo que ele referencia está lá naquele local e eu estou tentando descobrir se eu perdi alguma dependência ao instalar o curl para PHP. Não há erros quando uso curl -V na linha de comando.

Eu tentei os seguintes comandos:

sudo apt-get install php5-curl
sudo apt-get update
sudo apt-get install openssl

Eu também tentei remover o php completamente e instalá-lo do zero usando o seguinte comando:

sudo apt-get install php5-common libapache2-mod-php5 php5-cli

Então depois:

sudo apt-get install php5-curl

O que estou perdendo aqui?

Minhas versões de software:

PHP 5.5.9-1ubuntu4.2 (cli) (built: Jun 25 2014 17:17:37) 
curl 7.16.0 (x86_64-unknown-linux-gnu) libcurl/7.16.0
Ubuntu 14.04

Obrigado antecipadamente

    
por JWMarchant 27.06.2014 / 15:31

1 resposta

3

No seu sistema estão instaladas duas versões diferentes do libcurl:

  • libcurl3.so que é um link simbólico para libcurl4.so que aponta para libcurl.so.4.3.0
% bl0ck_qu0te%
  • uma versão local do libcurl.so.4 que é um link para libcurl.so.4.0.0
% bl0ck_qu0te%

Esta biblioteca local /usr/local/lib/libcurl.so.4 é carregada antes de /usr/lib/x86_64-linux-gnu/libcurl.so.4 . Podemos ver o pedido da biblioteca ld usando o comando strings /etc/ld.so.cache .

Como eu posso ver na saída find / -name "*libcurl*" -exec ls -l {} \; -print , você instalou um pacote fonte de libcurl-7.16.0 em /usr/local/src/curl-7.16.0/ e eu acho que você compilou e gerou /usr/local/lib/libcurl.so.4.0.0 .

O método em falta curl_easy_pause está presente no libcurl desde 7.18.0 e é por isso que recebi o erro, seu sistema está usando libcurl-7.16.0 .

Para corrigir este problema, remova o libcurl errado e atualize o cache ld.so:

     sudo rm /usr/local/lib/libcurl*
     sudo ldconfig -v

Sugiro remover o diretório /usr/local/src/curl-7.16.0 para evitar qualquer outro tipo de problema.

    
por Lety 22.07.2014 / 20:24