最近由于在开发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
上传文件到远程主机
从远程主机下载文件