您好,登錄后才能下訂單哦!
最近由于在開發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'); ?>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。