栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux下 php 安装 ssh2扩展 ,以及window下安装ssh2扩展

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux下 php 安装 ssh2扩展 ,以及window下安装ssh2扩展

openssl: 加密算法集合,C语言实现

libssh2:ssh2协议库库,C语言实现

PECL/ssh2: libssh2的php扩展,允许php程序调用libssh2中的函数

依赖关系:PECL/ssh2 –> libssh2 –> openssl

1.安装 libssh2

wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gz

tar -zxvf libssh2-1.4.2.tar.gz

cd libssh2-1.4.2

./configure --prefix=/usr/local/libssh2

make && make install

2.编译安装 ssh2

不同版本php 安装不同版本的ssh2, 否则会无法编译 make错误
php6- :   wget http://pecl.php.net/get/ssh2-0.13.tgz

或PHP7+ : wget http://pecl.php.net/get/ssh2-1.1.2.tgz


tar xvf ssh2-0.13.tgz  或 tar xvf  ssh2-1.1.2.tgz
cd ssh2-0.13   或 cd ssh2-1.1.2
phpize                ##没有的话yum install php-devel ubuntu apt-get install php7.0-dev
./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-php-config=/usr/local/php/bin/php-config  ##此处为自身环境下php配置文件,可通过find / -name php-config 进行查找
make && make install

3.复制到php的扩展目录

cp moduels/ssh2.so /usr/local/php/lib/php/extensions/no-debug-zts-20090626

4.修改 php 配置文件

  1. find / -name php.ini ##查找php.ini文件的位置

  2. echo "extension=ssh2.so" >> /usr/local/php/etc/php.ini

最后重启 php /etc/init.d/php-fpm restart

或者 systemctl restart php-fpm

5.查看是否成功

  1. # php -m | grep ssh2

  2. ssh2 ##出现这个证明成功

另一种方法安装------------------------------------------------------------------------------分割线

在 Centos 下用 yum 安装:

安装libssh2

#yum install libssh2 libssh2-devel 

安装ssh2

#pecl install ssh2      #但是默认是安装0.13版本

安装失败:

> **pecl/ssh2 requires PHP (version >= 4.0.0, version <= 6.0.0), installed version is 7.1.0**

> No valid packages found

> install failed

原因已经提示得很明显。不支持 PHP 7。

所以可以使用 1.1版本 (PECL :: Package :: ssh2)

#pecl install ssh2-1.1  

终于安装成功:

> Build process completed successfully

> Installing '/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/ssh2.so'

> install ok: channel://pecl.php.net/ssh2-1.0

> Extension ssh2 enabled in php.ini

并且提示 ssh2 已经加入到 php.ini 中。

但如果从未用 pecl 设置好 php_ini 指明 php.ini  的位置,那就会出现类似下面这样的提示,就得有时候可能要自己手动加进 php.ini

> Build process completed successfully

> Installing '/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/ssh2.so'

> install ok: channel://pecl.php.net/ssh2-1.0

> **configuration option "php_ini" is not set to php.ini location**          #配置选项“phpu ini”未设置为php。ini位置

> You should add "extension=ssh2.so" to php.ini

可以用如下命令设置 php_ini

> [root@lnmp lnmp.cn]# pecl config-set php_ini /usr/local/php7/lib/php.ini


Windows 下 PHP安装SSH2

1. 下载 php extension ssh2
下载地址 windows.php.net - /downloads/pecl/releases/ssh2/

根据自己PHP的版本去下载,可以看下自己的php版本,以及是32位的还是64位的,

32位的下载x86, 64位的下载x64

SSH2下面有不同的版本,PHP5+的选,0.12.  PHP7+的,选择,1.0或者1.1等等

比如我是 PHP7.0, 32位,使用的是 nts 线程安全.  就选择 

php_ssh2-1.0-7.0-nts-vc14-x86.zip​​​​​​

2. 解压完后,会有文件,php_ssh.dll、php_ssh2.pdb。

如果你本机没有llbssh, 记得要去下载 libssh2.dll 

3. 将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下。

4. 将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份

5. php.ini中加入 extension=php_ssh2.dll

6. 重启apache,即可使用php执行ssh连接操作了。

查看phpinfo(),是否有显示php_ssh2扩展加载成功。

PHP测试代码

代码如下:


$connection = ssh2_connect('192.168.255.128', 22);
ssh2_auth_password($connection, 'root', '123456');
ssh2_scp_send($connection, 'd:/tmp/test.txt', '/tmp/test.txt', 0644);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号