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

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

openssl: 加密算法集合,C语言实现
libssh2:ssh2协议库库,C语言实现
PECL/ssh2: libssh2的php扩展,允许php程序调用libssh2中的函数
依赖关系:PECL/ssh2 –> libssh2 –> openssl

查看已安装的PHP扩展

$ php -m

1.安装 libssh2 

Index of /downloadlinux下 php 安装 ssh2扩展 ,以及window下安装ssh2扩展https://www.libssh2.org/download/

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

PECL :: Package :: ssh2linux下 php 安装 ssh2扩展 ,以及window下安装ssh2扩展https://pecl.php.net/package/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**          #配置选项“php\u 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测试代码

代码如下:

<?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);

                       

点击阅读全文

上一篇 2023年 5月 28日 am11:11
下一篇 2023年 5月 28日 am11:12