php連線伺服器進行伺服器命令操作

2020-07-16 10:06:09

安裝PHP SSH2擴充套件

### ubuntu安裝php連結伺服器需要php擴充套件:

sudo apt-get install libssh2-1 php-ssh2

在Windows環境下安裝

下載 php extension ssh2下載地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

根據自己PHP的版本去下載,我使用的WAMPSERVER2.5(64bit),PHP版本為5.5.12,是執行緒安全的,
所以下載的是php_ssh2-0.12-5.5-ts-vc11-x64.zip

1、解壓完後,會有三個檔案,libssh2.dll、php_ssh.dll、php_ssh2.pdb。

2、將 php_ssh.dll、php_ssh2.pdb 放到你的 php 擴充套件目錄下 php/ext/ 下。

3、將libssh2.dll 複製到 c:/windows/system32 和 c:/windows/syswow64 各一份

4、php.ini中加入 extension=php_ssh2.dll

5、重新啟動apache,即可使用php執行ssh連線操作了。

6、檢視phpinfo(),是否有顯示php_ssh2擴充套件載入成功。

在linux環境下安裝

PHP SSH2擴充套件需要的依賴庫

openssl: 加密演算法集合,C語言實現

libssh2: ssh2協定庫庫,C語言實現

PECL/ssh2: libssh2的php擴充套件,允許php程式呼叫libssh2中的函數

依賴關係:PECL/ssh2 –> libssh2 –> openssl

安裝需要的擴充套件包

安裝libssh2

wget  http://www.libssh2.org/download/libssh2-1.4.2.tar.gz  
tar zxf libssh2-1.4.2.tar.gz  
cd libssh2-1.4.2  
./configure && make && make install

安裝PECL/ssh2

wget  http://pecl.php.net/get/ssh2-0.11.3.tgz  
cd ssh2-0.11.3  
phpize   (如果報錯命令沒有找到,apt-get install php5-dev)  
./configure —with-ssh2 && make && make install

修改php設定資訊

cd  /etc/php5/cgi  
vim  php.ini

新增項:extension=/usr/lib/php5/20090626/ssh2.so
ssh2.so是編譯ssh2時得到的模組,上面是模組的位置。

cd  /etc/php5/cli  
vim  php.ini

新增項:extension=/usr/lib/php5/20090626/ssh2.so
ssh2.so是編譯ssh2時得到的模組,上面是模組的位置。

重新啟動web伺服器

/etc/init.d/lighttpd restart

檢視是否載入了ssh2

[[email protected] ~]php -m | grep s

php程式碼使用

public function actionTestServer()
{
    //登陸linux的ssh2使用者名稱
    $ssh_user='root';
    //登陸linux的密碼
    $ssh_pwd='';
    //預設埠號22
    $ssh_port='22';
    //伺服器IP地址
    $ssh_host='120.77.62.13';
    //先測試拓展是否安裝並開啟
    if(!function_exists("ssh2_connect")){
        exit('SSH擴充套件沒有安裝或者沒有安裝成功');
    }
    //建立ssh2連線
    $ssh2 = ssh2_connect($ssh_host, $ssh_port);
    if(!$ssh2){
        exit('連線伺服器失敗');
    }else{
        echo '成功連線上了伺服器';
    }
    //連線成功後進行密碼驗證,沒驗證無法進行其他操作。
    if(!ssh2_auth_password( $ssh2, $ssh_user,  $ssh_pwd )){
        return false;
    }
    //shell指令碼語句
    $e="/etc/init.d/nginx restart >> /tmp/nginx_restart_".date('Ymd').".log";
    //通過ssh2_exec執行語句
    ssh2_exec($ssh2, $e);
}

以上就是php連線伺服器進行伺服器命令操作的詳細內容,更多請關注TW511.COM其它相關文章!