原因:php默认安装的依赖的libcurl.so中不支持sftp 协议
解决方法:先安装libssh2,curl安装时编译参数带–with-libssh2,这样可以支持sftp
一.编译安装libssh2-1.8.0
1.下载源码
地址: https://github.com/libssh2/libssh2
2.编译安装
#解压源码
tar -zxvf libssh2-1.8.0.tar.gz
cd libssh2-1.8.0
#预编译(并指定安装位置)
./configure --with-openssl --prefix=/usr/kk/data
#编译源码
make
#安装libssh2-1.8.0
make install
二.安装curl软件
1.下载curl-7.4.6.0安装包
地址:https://curl.haxx.se/download/
2.编译安装
#解压
tar -zxvf curl-7.85.0.tar.gz
#进入目录
cd curl-7.85.0
#预编译(并指定安装位置)
./configure --prefix="/usr/kk/curl" --with-libssh2
#编译安装
make && make install
使用 curl --version 检查是否更新成功
其实执行make后在curl-7.4.6.0/lib/.libs/目录下就已经生成 libcurl.so.4.6.0 文件了,如果只想使用该库就直接拷贝即可,不需要 make isntall.
三.安装php-curl扩展
我之前下载了很多的包,所以我直接在这个新的目录里面用
#将之前产生的可执行档及其他档案删除
make clean
#生成configure文件
/www/server/php/56/bin/phpize
#预编译生成make文件
./configure --with-php-config=/www/server/php/56/bin/php-config --with-curl=/usr/kk/curl
#编译安装
make && make install
四.修改php.ini配置
extension = /www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/curl.so
关闭之前的curl扩展(暂未找到)重启php
#检查curl 是否存在
php -m