先说说基本的环境情况,Kali最新系统(基于Debain内核),无法同时使用curl与Lamp开发环境。主要是依赖冲突,php5.6-curl需要使用libcurl3库,而curl需要使用libcurl4库,但libcurl3与libcurl4却又不能相互兼容。

导致想用curl的时候,就只能先删除php5.6-curl与libcurl3,如下
sudo apt-get install curl
执行后出现以下错误
要删除php5.6-curl及libcurl3

当先选择了y,进行curl的安装时,就会删除了php5.6-curl与libcurl3了,这本是正常的,但如果开发的站点使用了php-curl(php代码使用了curl去模拟url请求)时,就非常被动了,无法正常使用,站点报错,如一:

2020/03/24 14:02:29 [error] 1011#1011: *167 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Call to undefined function curl_setopt() in /var/www/html/test/lib/Varien/Http/Adapter/Curl.php on line 87" while reading response header from upstream, client: 127.0.0.1, server: de.hooya.com, request: "GET /index.php/admin/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "my.test.com"
sudo apt-get install php5.6-curl
只能再安装php5.6-curl,但会出现以下冲突
要删除curl
解决方案:更新apt源后,再安装php5.6-curl及libcurl3
sudo vim /etc/apt/sources.list

#增加以下php的源记录
deb https://packages.sury.org/php/ buster main

#:wq保存后
sudo apt-get update

#升级系统
sudo apt-get upgrade

#安装php5.6-curl
sudo apt-get install php5.6-curl libcurl3

#安装curl
sudo apt-get install curl

安装完curl后,测试后出现以下错误:

[email protected] ~> curl www.baidu.com
curl: /lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by curl)

只能再处理一次了,因还有一台系统是能正常的,所以将相关的libcurl.so.4复制到本机/lib/x86_64-linux-gnu/下就行,操作以下:

#检测正常系统的目录信息
[email protected] /lib/x86_64-linux-gnu> ls -al | grep libcurl

lrwxrwxrwx   1 root root        16 2月  22 22:37 libcurl.so.4 -> libcurl.so.4.6.0
-rw-r--r--   1 root root    588264 2月  22 22:37 libcurl.so.4.6.0
正常系统的libcur.so.4文件实际是软连接到libcurl.so.4.6.0
#检测不正常系统的目录信息
[email protected] /lib/x86_64-linux-gnu> ls -al | grep libcurl

lrwxrwxrwx   1 root root        16 2月  22 22:37 libcurl.so.4 -> libcurl3.so.4.5.0
-rw-r--r--   1 root root    588264 2月  22 22:37 libcurl3.so.4.5.0
发现libcurl.so.4是连接到libcurl3.so.4.5.0
结论:不正常系统的指向不对,将新文件复制到本机后,改软连接指向试试,操作如下
#复制libcurl.so.4.6.0文件到不正常系统的用户主目录先(自行处理)

#处理不正常系统的libcurl.so.4指向
cd /lib/x86_64-linux-gnu

#备份
sudo cp libcurl.so.4 libcurl.so.4.bak

#删除错误的软连接
sudo rm -rf libcurl.so.4

#复制libcurl.so.4.6.0 到/lib/x86_64-linux-gnu
sudo cp libcurl.so.4.6.0 /lib/x86_64-linux-gnu/libcurl.so.4.6.0

#增加软连接,将libcurl.so.4 指向到 libcurl.so.4.6.0
ln -s libcurl.so.4.6.0 libcurl.so.4
完成后,curl就能正常使用了,不再冲突php5.6-curl

libcurl.so.4.6.0文件分享链接: https://pan.baidu.com/s/1ZHs4oETAnhm57-LzTOhDIw 提取码: xdy7