Я получаю эту ошибку в своем журнале ошибок 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
Заранее спасибо
В Вашей системе установлены две других версии 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
корень 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
каталог для предотвращения любого другого вида проблемы.