PHP 7.4 и Ubuntu 18 - PHP Запуск: невозможно загрузить динамическую c библиотеку 'curl.so' - PullRequest
1 голос
/ 30 января 2020

Я использую ondrej ppa для PHP и использую Ubuntu 18. Запуск php -v дает мне следующий вывод:

PHP Warning:  PHP Startup: Unable to load dynamic library 'curl.so' (tried: /usr/lib/php/20190902/curl.so (/usr/lib/php/20190902/curl.so: symbol curl_mime_addpart version CURL_OPENSSL_4 not defined in file libcurl.so.4 with link time reference), /usr/lib/php/20190902/curl.so.so (/usr/lib/php/20190902/curl.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.4.2 (cli) (built: Jan 23 2020 11:21:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.2, Copyright (c), by Zend Technologies

В принципе, я могу ' Запустите любые команды composer, потому что многие библиотеки зависят от curl, и, очевидно, он не найден. Я сделал следующее:

  1. Пытался обновить все (sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo apt-get install php7.4-curl). Это не решает проблему.

  2. Перезапущено apache, несмотря на то, что это версия cli.

  3. Дважды проверил, где он пытается найти библиотеку. Странно, что /usr/lib/php/20190902/curl.so является допустимым путем, и файл определенно находится там.

Запуск php --ini также показывает, что загружено расширение curl:

Configuration File (php.ini) Path: /etc/php/7.4/cli
Loaded Configuration File:         /etc/php/7.4/cli/php.ini
Scan for additional .ini files in: /etc/php/7.4/cli/conf.d
Additional .ini files parsed:      /etc/php/7.4/cli/conf.d/10-mysqlnd.ini,
...more ini files...
/etc/php/7.4/cli/conf.d/20-curl.ini,
...more ini files...

I Я не уверен, как это исправить, так как файл, который он якобы не может найти, находится именно там, где он говорит, что выглядел, и все обновлено.

1 Ответ

1 голос
/ 04 февраля 2020

Для тех, у кого есть эта проблема, ответ: здесь .

По сути, libcurl, который был установлен на моей машине с Ubuntu, конфликтовал с официальным, который есть у Ubuntu? Странно, но это затрагивало только php7 .3 и 7.4, а не 7.2. В любом случае, я переименовал модуль libcurl следующим образом:

mv /usr/local/lib/libcurl.so.4.4.0 /usr/local/lib/libcurl.so.4.4.0.backup

И, запустив php -m, я смог убедиться, что модуль cURL теперь включен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...