php如何安装ssh2.so扩展

PHP技术
484
0
0
2022-09-06

想要php连接ssh服务端,则需要给php源码安装ssh2.so扩展。ssh2扩展的编译依赖于libssh2。

例如:下面这些函数

PHP: Manual Quick Reference

1. 如何确认是否安装了以上扩展?

在php文件中调用phpinfo()方法, 在页面能看到以下内容,说明安装libssh2和ssh2扩展

php如何安装ssh2.so扩展

2 如何安装以上扩展?

!!!首先确保服务器已安装php

Linux系统:

下载libssh2包: www.libssh2.org/download/

下载ssh2包: pecl.php.net/package/ssh2

本次示例,php-7.3.26 , libssh2 和 ssh2 都下载的最新版本:libssh2-1.10.0.tar.gz, ssh2-1.3.1.tgz

第一步:编译libssh2扩展

假设文件下载到/home/test/目录

cd /home/test/

解压
>tar -zxvf  libssh2-1.10.0.tar.gz

>cd libssh2-1.10.0

>./configure

> make && make install

第二步:编译ssh2扩展

假设文件下载到/home/test/目录

cd /home/test/

解压
>tar -zxvf  ssh2-1.3.1.tgz

>cd ssh2-1.3.1 (进入可查看文件夹内容,没得configure文件)

> phpize (这是php的编译工具,于php的可执行文件在同目录, 执行后得到configure文件)

>./configure --with-ssh2 --with-php-config=/user/local/php/bin/php-config(就是php安装目录/bin/php-config)

> make && make install
ssh2编译成功后得到ssh2.so扩展,地址: /user/local/ssh2/modules/ssh2.so
同时会提示这个so文件已经被复制到了php的扩展文件(若没有可手动复制过去), 地址如下 : Installing shared extensions: /user/local/php/lib/php/extensions/no-debug-non-zts-20180731/

最后,在php.ini中增加如下语句, 然后重启php。 使用1中方式可确认扩展是否安装好。

 extension=ssh2.so

Windows系统

通过phpinfo() 确认系统是64位还是32位,是NTS还是TS(线程安全),以及VC版本,然后下载对应的包。

php如何安装ssh2.so扩展

下载libssh包:windows.php.net/downloads/php-sdk/...

下载php-ssh2包:windows.php.net/downloads/pecl/rel...

解压以上2个压缩包, 分别得到三个重要文件:libssh2.dll、php_ssh2.dll、php_ssh2.pdb

php如何安装ssh2.so扩展

  • 第一步:将 php_ssh2.dll、php_ssh2.pdb 放到php安装目录下的 /ext/ 中
  • 第二步:将libssh2.dll 复制到 C:/windows/system32 和 C:/windows/syswow64 (64位系统才有)各一份
  • 第三步:php.ini中加入 extension=php_ssh2.dll
  • 第四步:重启php。 确认扩展是否安装成功,见1