1.背景:最近做一個遠程設備管理系統,要求輸入遠程設備的用戶名和密碼,登錄到主機;登錄成功之后可以輸入shell命令,然后將執行結果返回
2.利用xampp快速搭建LAMP環境,之所以選用xampp,主要原因就是快!!
[root@iZ2zefbgycwbez4hr3fg6rZ local]# ./xampp-linux-x64-5.6.3-0-installer.run
3.安裝ssh2的依賴
[root@iZ2zefbgycwbez4hr3fg6rZ local]# yum install libssh2 libssh2-devel gcc-c++
4.安裝ssh2
首先下載ssh2
[root@iZ2zefbgycwbez4hr3fg6rZ local]# wget http://pecl.php.net/get/ssh2-0.12.tgz
解壓
[root@iZ2zefbgycwbez4hr3fg6rZ local]# tar -zxvf ssh2-0.12.tgz
進入到ssh2目錄
[root@iZ2zefbgycwbez4hr3fg6rZ local]# cd ssh2-0.12
執行phpize命令,提示要先安裝autoconf
於是yum安裝autoconf
[root@iZ2zefbgycwbez4hr3fg6rZ ssh2-0.12]# yum -y install autoconf
再次執行phpize,這次沒有報錯
[root@iZ2zefbgycwbez4hr3fg6rZ ssh2-0.12]# /opt/lampp/bin/phpize
[root@iZ2zefbgycwbez4hr3fg6rZ ssh2-0.12]# ./configure --with-php-config=/opt/lampp/bin/php-config LIBS=-ldl [root@iZwz9ccvnq6egujzif4sftZ ssh2-0.12]# make [root@iZwz9ccvnq6egujzif4sftZ ssh2-0.12]# make install
修改php.ini
[root@iZwz9ccvnq6egujzif4sftZ ssh2-0.12]# vim /opt/lampp/etc/php.ini
添加一行
extension=ssh2.so
5.測試
首先刪除原先網站根目錄下所有文件,並新建一個test.php
[root@iZ2zefbgycwbez4hr3fg6rZ ssh2-0.12]# cd /opt/lampp/htdocs/ [root@iZ2zefbgycwbez4hr3fg6rZ htdocs]# rm -rf * [root@iZ2zefbgycwbez4hr3fg6rZ htdocs]# vim test.php
test.php內容如下:
<?php $user="要連接的主機用戶名"; $pass="要連接的主機密碼"; $connection=ssh2_connect('要連的主機IP',22); ssh2_auth_password($connection,$user,$pass); $cmd="cd /usr;ls;"; $ret=ssh2_exec($connection,$cmd); stream_set_blocking($ret, true); echo (stream_get_contents($ret));
$cmd="cd /usr;ls";這行代碼表示切換到/usr目錄下並執行ls命令
分號將多條shell命令分隔開
瀏覽器地址訪問 ip/test.php
發現將在遠程主機上的shell命令已經執行成功!
如果你遇到什么問題或者對本篇文章有什么建議,,歡迎添加本人qq1822581649,,一同探討技術問題!