為PHP安裝SSH2擴展需要兩個軟件包,libssh2和ssh2。兩者的最新版本分別為1.4.2和0.12,下載地址分別為和。這里我們可以均下載最新版本,libssh2的源碼包為libssh2-1.4.2.tar.gz,ssh2的源碼包為ssh2-0.12.tgz。
蒼溪網站建設公司成都創新互聯公司,蒼溪網站設計制作,有大型網站制作公司豐富經驗。已為蒼溪上1000家提供企業網站建設服務。企業網站搭建\外貿網站制作要多少錢,請找那個售后服務好的蒼溪做網站的公司定做!
其次,解壓并安裝libssh2和ssh2。其中,libssh2需要先安裝,ssh2后安裝。安裝步驟如下:
# tar -zxvf libssh2-1.4.2.tar.gz
# cd libssh2-1.4.2
# ./configure --prefix=/usr/local/libssh2
# make make install
以上為安裝libssh2,這里需要記住libssh2的安裝目錄,因為在安裝ssh2的時候還會用到。
# tar -zxvf ssh2-0.12.tgz
# cd ssh2-0.12
# phpize
# ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2
# make
執行完以上過程后,在當前目錄下的modules目錄下會生成一個ssh2.so文件,這就是擴展PHP所需要的,將該文件拷貝到PHP庫的存儲目錄下在修改PHP的配置文件即可。
# cp modules/ssh2.so /usr/lib64/php/modules/
注:PHP庫的存儲目錄可能因系統而異,本博主的機器上是/usr/lib64/php/modules/
# vi /etc/php.ini
# 向該文件中添加內容:extension=ssh2.so
此時為PHP擴展SSH2就已經完成了,為了驗證是否安裝成功,我們可以通過執行一下命令來驗證。
# php -i|grep ssh2
Registered PHP Streams = php, file, http, ftp, compress.bzip2, compress.zlib, https, ftps, ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp
ssh2
libssh2 version = 1.4.2
banner = SSH-2.0-libssh2_1.4.2
最后,我們再通過一個簡單的PHP程序來試用SSH2,該程序首先連接遠程服務器,然后執行相關操作,最后讀取操作執行的返回結果,具體例子代碼如下。
?php
$user="user";
$pass="password";
$connection=ssh2_connect('202.112.113.250',22);
ssh2_auth_password($connection,$user,$pass);
$cmd="ps aux";
$ret=ssh2_exec($connection,$cmd);
stream_set_blocking($ret, true);
echo (stream_get_contents($ret));
?
可以的,首先你必須安裝了ssh的php擴展。
如果不知道是否已經安裝好,可以輸入一下代碼測試一下。
?php
phpinfo();
?
如果有以上信息,說明安裝成功,以下是測試代碼
?php
$connection?=?ssh2_connect('192.168.1.222',?22);
if?(!$connection)?die('Connection?failed');
ssh2_auth_password($connection,?'root',?'root');
$sftp?=?ssh2_sftp($connection);
$stream?=?fopen("ssh2.s",?'w+');
fwrite($stream,?"php_ssh_test\nsecond?line\n");
fclose($stream);
exit;
$host='127.0.0.1';
$user='root';
$password='root';
$dbName='dbName';
$link=new mysqli($host,$user,$password,$dbName);
if ($link-connect_error){
die("連接失敗:".$link-connect_error);
}
$sql="select * from admins";
$res=$link-query($sql);
$data=$res-fetch_all();
var_dump($data);
mysql_connect()函數用于連接數據庫,注意,是小寫,大寫是不行的哦 他有3個參數 第一個:是mysql數據庫所在服務器地址,有2種情況,一種是:你的連接數據庫的代碼文件和mysql數據庫,那么,這個參數可以是localhost、127.0.0.1這兩種都行,mysql數據庫端口默認是3306,連接的時候可以省略,但如果mysql'數據庫端口不是這個,那這個參數還要加上端口,比如,localhost:3305、127.0.0.1:3305這樣 第二種情況就是,你的程序代碼在A服務器,msyql在B服務器,這樣,這個參數就是mysql數據庫所在服務器的ip地址 第二個參數是mysql數據庫的登錄用戶,比如:root 第三個參數是mysql數據庫的登錄用戶的密碼,比如123456,當然,如果mysql數據庫相應的登錄用戶,沒有設置密碼,那么這個參數可以留空,但不能省略 至于雙引號單引號的問題,沒有多大差別,單引號雙引號都行,如果非要說有差別的話,就是,php會查找雙引號內的變量進行編譯 給你舉個例子: $a = 10; echo '數字是:$a';//這個使用了單引號,那么輸出結果就是: 數字是$a echo "數字是:$a";//這個使用了雙引號,所以輸出結果就是:數字是10 差別就是這個 一般來說,php中,如果引號內沒有變量的使用,那就用單引號,這樣有利于php的優化
一、最佳方案是在77機器上安裝apache和php
二、可以通過管道控制使用telnet登錄77號機執行命令并獲取結果,ssh連接本人沒有做過,telnet方法如下:
$f=fopen("telnet://192.168.0.77","rw");
$s=fgets($fp);
fputs($fp,"root");
$s=fgets($fp);
fputs($fp,"pass");
$s=fgets($fp);
fputs($fp,"df -h");
while(!feof($fp)){
$fp=fgets($fp);
echo $s;
}
fclose($fp);
手機輸入真累~~~
分享標題:php獲取ssh數據 php ssh
網址分享:http://www.yijiale78.com/article32/hhigpc.html
成都網站建設公司_創新互聯,為您提供標簽優化、網站制作、用戶體驗、企業網站制作、ChatGPT、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯