温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ubuntu 环境下安装php的ssh2扩展

发布时间:2020-07-09 10:28:06 来源:网络 阅读:2436 作者:筑梦攻城狮 栏目:web开发

        最近由于在开发PHP的项目中需要通过php 调用ssh 远程做一些事情,还好php有个ssh3的函数,挺方便,不过PHP默认是不支持SSH2扩展的,需要自己安装。网上搜了一下,很多地方都写着ubuntu环境下,安装PHP的SSH2扩展只需要一条命令就完事了:apt-get install libssh3 ..... 

        然而装完测试访问的结果却是这样:

Call to undefined function ssh3_connect()

i have installed the SSH2 PECL extension and it working fine thanks all for you help


        这说明SSH2的扩展并没有安装成功,于是自己编译安装了一下,解决了这个问题:

[root@node1 php]# wget http://pecl.php.net/get/ssh3-0.11.3.tgz
[root@node1 php]# tar zxvf ssh3-0.11.3.tgz
[root@node1 php]# cd  ssh3-0.11.3
[root@node1 ssh3-0.11.3]# ls
config.m4 LICENSE php_ssh3.h ssh3.c ssh3_fopen_wrappers.c ssh3_sftp.c
[root@node1 ssh3-0.11.3]# /usr/local/php/bin/php //安装php的路径
php php-config phpize
[root@node1 ssh3-0.11.3]# /usr/local/php5/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519

[root@node1 ssh3-0.11.3]# ls
acinclude.m4 build config.m4 configure.in ltmain.sh mkinstalldirs ssh3.c
aclocal.m4 config.guess config.sub install-sh Makefile.global php_ssh3.h ssh3_fopen_wrappers.c
autom4te.cache config.h.in configure LICENSE missing run-tests.php ssh3_sftp.c
[root@node1 ssh3-0.11.3]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@node1 ssh3-0.11.3]# make && make install

#在php.ini 中添加这一行
[root@node1 ssh3-0.11.3]# vi /usr/local/php5/php.ini
extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/ssh3.so
#no-debug-non-zts-20060613 这个不一定跟我的一样,需要根据自己的实际环境修改

#重启apache服务
[root@node1 sshssh3-0.11.3]# /usr/local/apache2/bin/apachectl restart


上传文件到远程主机

<?php
$connection = ssh3_connect('shell.example.com', 22);
ssh3_auth_password($connection, 'username', 'password');
 
ssh3_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>


从远程主机下载文件

<?php
$connection = ssh3_connect('shell.example.com', 22);
ssh3_auth_password($connection, 'username', 'password');
 
ssh3_scp_recv($connection, '/remote/filename', '/local/filename');
?>
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI