PHP Startup Невозможно загрузить динамическую библиотеку

Я получаю эту ошибку в своем журнале ошибок apache, пытаясь заставить cURL работать на 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

Файл, на который он ссылается, находится в этом месте, и я пытаюсь выяснить, если я пропустил какие-либо зависимости при установке curl для PHP. Нет ошибок при использовании curl -V в командной строке.

Я пробовал следующие команды:

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

Я также пытался полностью удалить php и установить его с нуля, используя следующую команду:

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

Затем после:

sudo apt-get install php5-curl

Чего мне здесь не хватает?

Версии моего программного обеспечения:

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

Заранее спасибо

2
задан 27 June 2014 в 17:31

1 ответ

В Вашей системе установлены две других версии libcurl:

  • libcurl3.so это - символьная ссылка на libcurl4.so та точка к libcurl.so.4.3.0

корень lrwxrwxrwx 1 базируется 12 апреля 1 13:43/usr/lib/x86_64-linux-gnu/libcurl.so.3-> корневой корень libcurl.so.4 lrwxrwxrwx 1 16 апреля 1 13:43/usr/lib/x86_64-linux-gnu/libcurl.so.4-> libcurl.so.4.3.0-rw-r - r - 1 корневой корень 422696 1 апреля 13:43/usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0

  • локальная версия libcurl.so.4, который является ссылкой на libcurl.so.4.0.0

корень lrwxrwxrwx 1 базируется 16 июня 18 9:26/usr/local/lib/libcurl.so.4-> корневой корень libcurl.so.4.0.0-rwxr-xr-x 1 1146079 18 июня 9:26/usr/local/lib/libcurl.so.4.0.0

Эта местная библиотека /usr/local/lib/libcurl.so.4 загружается прежде /usr/lib/x86_64-linux-gnu/libcurl.so.4. Мы видим ld порядок библиотеки использовать команду strings /etc/ld.so.cache.

Поскольку я вижу в find / -name "*libcurl*" -exec ls -l {} \; -print вывод, Вы установили исходный пакет libcurl-7.16.0 в /usr/local/src/curl-7.16.0/ и я предполагаю, что Вы скомпилировали и генерировали /usr/local/lib/libcurl.so.4.0.0.

Отсутствующий метод curl_easy_pause присутствует в libcurl с тех пор 7.18.0, и вот почему я получил ошибку, Ваша система использует libcurl-7.16.0.

Для устранения этой проблемы удалите неправильный libcurl и обновите ld.so кэш:

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

Я предлагаю удалить /usr/local/src/curl-7.16.0 каталог для предотвращения любого другого вида проблемы.

3
ответ дан 27 June 2014 в 17:31

Другие вопросы по тегам:

Похожие вопросы: