最近公司项目用到sftp服务,php ssh2_connect()函数一直报错,后来查阅相关资料了解到是ssh2拓展没装的原因,唉,公司测试环境太乱,搞了整整一天 晕。。。
1. 首先要安装 libssh2
wget --no-check-certificate https://www.libssh2.org/download/libssh2-1.2.tar.gz (https方式记得加上--no-check-certificate)
tar -zxvf libssh2-1.2.tar.gz
cd libssh2-1.2
./configure --prefix=/usr/work/tool/libssh2
make && make install 安装即可
2. 安装ssh2
wget http://pecl.php.net/get/ssh2-0.12.tgz
tar -xvf ssh2-0.12.tgz
cd ssh2-0.12
phpize
./configure --prefix=/usr/work/tool/ssh2 --with-ssh2=/usr/work/tool/libssh2 --with-php-config=/usr/work/tool/php/bin/php-config
make && make install
修改php.ini 添加 extension=ssh2.so
重启php kill -USR2 2407
注意:
1. 解压报如下错的话可以换成 tar -xvf libssh2-1.2.tar.gz
2. libssh2和ssh2版本一定要一致,不然会报错,我用的是php5.4.3
3. 安装libssh2如果报错 ,则先在本机上查找是否有 libssl.so文件(我的在/usr/lib64/libssh2.so目录下),有的话可以指定目录--with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH ,没有的话重新安装