首頁  >  文章  >  後端開發  >  php連接伺服器進行伺服器命令操作

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

angryTom
angryTom原創
2019-10-31 18:02:394945瀏覽

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

安裝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時所得到的模組,上面是模組的位置。

重啟網頁伺服器

/etc/init.d/lighttpd restart

查看是否載入了ssh2

[root@localhost ~]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相關知識,請造訪PHP中文網

! ###

以上是php連接伺服器進行伺服器命令操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn