PHP 7.4 和 Ubuntu 18 - PHP 启动:无法加载动态库“curl.so”

Ale*_*lex 7 php linux ubuntu curl

我正在使用PHP 的ondrej ppa并运行 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
Run Code Online (Sandbox Code Playgroud)

基本上,我无法运行任何composer命令,因为很多库都依赖于curl,而且显然没有找到它。我做了以下事情:

  1. 尝试更新所有内容 ( sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo apt-get install php7.4-curl)。这并不能解决问题。

  2. 尽管这是 cli 版本,但重新启动了 apache。

  3. 仔细检查它试图在哪里找到图书馆。奇怪的是,这/usr/lib/php/20190902/curl.so是一个有效的路径,并且文件肯定在那里。

运行php --ini还显示卷曲扩展已加载:

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...
Run Code Online (Sandbox Code Playgroud)

我不确定如何解决这个问题,因为它据称找不到的文件正是它所说的位置,并且所有内容都是最新的。

Ale*_*lex 4

对于有此问题的任何人,答案就在这里

基本上,我的 Ubuntu 机器上安装的 libcurl 与 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 模块现在是否已启用。